Niki Kovacs wrote:
Hi,
Our public library management software (PMB) runs on Apache/PHP/MySQL. It requires some additional PHP modules to run correctly, namely:
- php-gd
- php-yaz
- php-xslt
I've googled and fiddled around quite a bit, and come to the following conclusions:
- php-gd can be installed from extra repos (rpmforge IIRC), so this
one's no problem.
There is a php-gd already in centos-5 ... so no RPMForge RPM is necessary.
- To install php-yaz, I have to install the yaz library first. To do
this, I download the FC6 SRPM for yaz from www.indexdata.dk, it builds without any problem, and I install the resulting libyaz3 and libyaz3-devel. Then, I can install the according PHP module with a simple 'pecl install yaz'.
I do not recommend that ... it can get overwritten on php upgrades, instead, build a php-pecl RPM. Use the SRPMS from c5 centosplus as an example ... like php-pecl-memcache-2.1.2-1.el5.centos.src.rpm or php-pecl-Fileinfo-1.0.4-3.el5.centos.src.rpm
- Apparently, there's no php-xslt module around. AFAIK, the only way to
have it is to build it into PHP. So I went and downloaded the PHP SRPM from one of the CentOS mirrors. I edited php.spec and added the following configure option in php.spec:
--with-xslt-sablot
After installing a myriad of build dependencies, I launched 'rpmbuild -bb --clean php.spec', and after a while, I got my /usr/src/redhat/RPMS/i386 directory chock-full with resulting PHP packages.
I uninstalled everything I already had PHP-wise, like this:
yum remove `rpm qa | grep php`
Then I simply installed my resulting RPMS like this:
rpm -ivh php-*.rpm
I checked the PHP information page (with phpinfo()), and every module needed by my application was there.
Now I wonder: how will I manage security and/or bugfix updates for PHP and its modules in the future? When simply issuing 'yum update', any update to php will squash my rebuilt version, and PMB will become dysfunctional. My first idea would be: see if there are available updates, and in that case, download the according SRPM, rebuild and reinstall the whole thing. But that sounds a bit tedious.
Or simply put a line in /etc/yum.conf:
exclude=php php-*
Thanks, Johnny Hughes