How to build RPM of PHP for apache with mpm-worker
In my last post, we have seen how we build rpm package for apache with default mpm-worker now it this tutorial we will see how we build rpm of php that can work with apache with mpm-worker.
Download php source rpm from mirror.centos.org
http://mirror.centos.org/centos-5/5.2/os/SRPMS/php-5.1.6-20.el5.src.rpm
To resolve the dependancies to build RPM package for PHP installing the require some lib packages
[root@testbed2:/tmp]# yum install bzip2-devel curl-devel gmp-devel aspell-devel libjpeg-devel libpng-devel pam-devel openssl-devel sqlite-devel pcre-devel krb5-devel libc-client-devel mysql-devel postgresql-devel unixODBC-devel libxml2-devel net-snmp-devel libxslt-devel libxml2-devel ncurses-devel gd-devel freetype-devel
install source rpm using
[root@testbed2:/tmp]# rpm -i php-5.1.6-20.el5.src.rpm
[root@testbed2:/tmp]# cd /usr/src/redhat/SPECS
vi php.spec and find “%configure” (without quote) where you can put the “–enable-maintainer-zts \” (without quote)
then rebuild rpm using below command
[root@testbed2:/usr/src/redhat/SPECS]# rpmbuild -bb php.spec
after creating rpm you will find all rpm in /usr/src/redhat/RPMS/{your arch folder} folder
in my condition the rpm’s in /usr/src/redhat/RPMS/x86_64
now change the httpd mpm to worker
[root@testbed2:/usr/src/redhat/X86_64]# /etc/init.d/httpd stop
edit file /etc/sysconfig/httpd
just uncomment the HTTPD=/usr/sbin/httpd.worker line
save and exit then start the httpd service
Now install php rpms from /usr/src/redhat/RPMS/{your arch folder}
[root@testbed2:/tmp]# /etc/init.d/httpd start
[root@testbed2:/tmp]# httpd -V
[root@testbed2:/tmp]# php -v
This is the way that I have done this. I know people are many way and good idea’s to do this.
So keep commenting that update that the things.