
CentOS 5.2 sebagai operating system server dan ternyata system operasi ini cukup aman dan nyaman untuk server. Saya melanggar sumpah saya sendiri untuk tidak memakai Linux berbasis rpm
setelah pengalaman buruk saya bebarapa tahun lalu memakai Red Hat dan Mandrake/Mandriva sehingga saya beralih ke debian dan turunannya. Di post ini akan saya terangkan bagaimana saya mengkompilasi (lagi) PHP 5.2.2. dari project fedora.
Dan karena CentOS merupakan distro dengan pilihan package untuk Enterprise Linux (EL), sehingga paket-paketnya pun lebih tua daripada distro lain. Misalnya dibandingkan dengan ubuntu.
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
Selanjutnya, download src.rpm dari fedora (saya memilih versi 7 karena ini yang bukan bleeding edge) berikut ini
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
- http://dl.getdropbox.com/u/461274/php-5.2.2-3_lynxluna_.i386.rpm
- http://dl.getdropbox.com/u/461274/php-bcmath-5.2.2-3_lynxluna_.i386.rpm
- http://dl.getdropbox.com/u/461274/php-cli-5.2.2-3_lynxluna_.i386.rpm
- http://dl.getdropbox.com/u/461274/php-common-5.2.2-3_lynxluna_.i386.rpm
- http://dl.getdropbox.com/u/461274/php-dba-5.2.2-3_lynxluna_.i386.rpm
- http://dl.getdropbox.com/u/461274/php-dbase-5.2.1-1_lynxluna_.i386.rpm
- http://dl.getdropbox.com/u/461274/php-devel-5.2.2-3_lynxluna_.i386.rpm
- http://dl.getdropbox.com/u/461274/php-gd-5.2.2-3_lynxluna_.i386.rpm
- http://dl.getdropbox.com/u/461274/php-imap-5.2.2-3_lynxluna_.i386.rpm
- http://dl.getdropbox.com/u/461274/php-ldap-5.2.2-3_lynxluna_.i386.rpm
- http://dl.getdropbox.com/u/461274/php-mbstring-5.2.2-3_lynxluna_.i386.rpm
- http://dl.getdropbox.com/u/461274/php-mcrypt-5.2.1-1_lynxluna_.i386.rpm
- http://dl.getdropbox.com/u/461274/php-mhash-5.2.1-1_lynxluna_.i386.rpm
- http://dl.getdropbox.com/u/461274/php-mysql-5.2.2-3_lynxluna_.i386.rpm
- http://dl.getdropbox.com/u/461274/php-ncurses-5.2.2-3_lynxluna_.i386.rpm
- http://dl.getdropbox.com/u/461274/php-odbc-5.2.2-3_lynxluna_.i386.rpm
- http://dl.getdropbox.com/u/461274/php-pdo-5.2.2-3_lynxluna_.i386.rpm
- http://dl.getdropbox.com/u/461274/php-pgsql-5.2.2-3_lynxluna_.i386.rpm
- http://dl.getdropbox.com/u/461274/php-snmp-5.2.2-3_lynxluna_.i386.rpm
- http://dl.getdropbox.com/u/461274/php-soap-5.2.2-3_lynxluna_.i386.rpm
- http://dl.getdropbox.com/u/461274/php-tidy-5.2.1-1_lynxluna_.i386.rpm
- http://dl.getdropbox.com/u/461274/php-xml-5.2.2-3_lynxluna_.i386.rpm
- http://dl.getdropbox.com/u/461274/php-xmlrpc-5.2.2-3_lynxluna_.i386.rpm
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.
Regards,
RMS Noor HPD

0 komentar:
Poskan Komentar