Awalnya saya ingin menginstall GOSA terbaru, akan tetapi pada akhirnya malah dia meminta PHP versi 5.2. sedang versi PHP yang sekarang ada di CentOS adalah versi 5.1.6. Jadi aplikasi GOSA tersebut tidak bisa digunakan dan hanya warning kecil yang ada terlihat di browser.
Saya cari-cari rpm, adanya cuma buat fedora, karena takut broken atau tidak kompatibel dengan library-library yang saya inginkan dan juga karena php-nya belum dipatch dengan suhosin, maka saya memutuskan untuk menginstall PHP dari source RPM. Langkah-langkahnya ternyata ga susah-susah amat. Pertama-tama jangan lupa untuk menginstall seluruh package ini dengan yum
[root@demo.test ~] $ yum install wget nano make autoconf automake rpm-build postfix fileutils file libtool gcc cpp gcc-c++ perl-DBI readline-devel libc-client-devel libstdc++-devel bzip2-devel curl-devel db4-devel expat-devel gmp-devel aspell-devel httpd-devel libjpeg-devel libpng-devel pam-devel openssl-devel sqlite-devel zlib-devel pcre-devel krb5-devel cyrus-sasl-devel openldap-devel postgresql-devel unixODBC-devel libxml2-devel net-snmp-devel libxslt-devel libxml2-devel expat-devel ncurses-devel gd-devel freetype-devel
Selanjutnya, download src.rpm dari fedora (saya memilih versi 7 karena ini yang bukan bleeding edge) berikut ini
http://download.fedora.redhat.com/pub/fedora/linux/releases/7/Everything/source/SRPMS/php-5.2.2-3.src.rpm
http://download.fedora.redhat.com/pub/fedora/linux/releases/7/Everything/source/SRPMS/php-extras-5.2.1-1.fc7.src.rpm
Setelah itu download suhosin patch untuk php 5.2.2. Dan juga suhosin source terbaru.
Ok. setelah itu install source RPM tadi.
[root@demo.test ~] # rpm -Uvh php-5.2.2-3.src.rpm
[root@demo.test ~] # rpm -Uvh php-extras-5.2.1-1.fc7.src.rpm
[root@demo.test ~] # cd /usr/src/redhat/SOURCES
kemudian extract dan rename ke nama yang baru tadi patch suhosin ke directory ini
[root@demo.test ~] # gunzip suhosin-patch-5.2.2-0.9.6.2.patch.gz
[root@demo.test ~] # mv suhosin-patch-5.2.2-0.9.6.2.patch php-5.2.2-suhosin.patch
Edit file php.spec di /usr/src/redhat/SPECS
[root@demo.test ~] # cd /usr/src/redhat/SPECS
[root@demo.test ~] # nano php.spec
Kemudian tambahkan patch suhosin di file berikut ini pada bagian-bagian berikut
... ...
Source0: http://www.php.net/distributions/php-%{version}.tar.gz
Source1: php.conf
Source2: php.ini
Source3: macros.php
Patch0: php-5.2.2-suhosin.patch
Patch1: php-5.1.4-gnusrc.patch
Patch2: php-4.3.3-install.patch
...
...
%prep
%setup -q
%patch0 -p1 -b .suhosin
%patch1 -p1 -b .gnusrc
%patch2 -p1 -b .install
%patch3 -p1 -b .norpath
%patch5 -p1 -b .phpize64
%patch8 -p1 -b .includedir
...
kemudian edit juga .spec php-extra kemudian ganti baris berikut ini:
...
Group: Development/Languages
License: The PHP License
URL: http://www.php.net/
Source0: http://www.php.net/distributions/php-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: php-devel >= %{version}
...
Ok. sudah siap… saatnya melakukan build yang memakan waktu err… lumayan lama
:
[root@demo.test ~] # cd /usr/src/redhat/SPECS
[root@demo.test ~] # rpmbuild -bb php.spec
[root@demo.test ~] # rpmbuild -bb php-extras.spec
Sesudah itu silahkan periksa directory /usr/src/redhat/RPMS, akan ada banyak file .rpm di situ, silahkan install semua yang berbau php dengan
[root@demo.test ~] # cd /usr/src/redhat/RPMS/i386/
[root@demo.test ~] # rpm --force -Uvh php-*
Suhosin PHP Extensions.
Yap, PHP dengan suhosin patch sudah diinstall. saatnya menginstall suhosin php extensions, masih ingat source code suhosin extensions tadi? Silahkan dibuka-buka, kalau tempat saya si di root home alias tanda cacing ~. Saatnya membuild extensions yang satu ini. Kali ini tidak memakai rpmbuild. Tetapi memakai perintah untuk menginstall extensions PHP.
[root@demo.test ~] # cd ~
[root@demo.test ~] # tar -xvzf suhosin-0.9.27.tgz
[root@demo.test ~] # cd suhosin-0.9.27
[root@demo.test ~] # phpize
[root@demo.test ~] # ./configure
[root@demo.test ~] # make
[root@demo.test ~] # make test
[root@demo.test ~] # make install
Dan tugas PHP anda sudah terinstall versi 5.2.2 lengkap dengan suhosin-nya. Untuk ini saya perlihatkan hasil potongan phpinfo() di tempat saya:
Jika anda tidak ingin repot-repot menginstall PHP berikut saya kasih linknya … hehee… kenapa saya taruh di bawah.. biar pada baca dulu :P
Kesemua-mua rpm tadi saya build di box CentOS 5.2. Jadi kalo yang pake fedora atau RHEL, saya endak menjamin package ini kompatibel.
Setelah install paket-paket di atas, PHP langsung sudah jadi PHP 5.2.2. besearta ekstensinya, yang tersisa hanya menginstall suhosin extension dengan mengkompilasinya :D. Selamat menikmati.