编译安装php
解决依赖关系:
yum -y groupinstall “X Software Development”
如果要让编译的php支持mcrypt,mhash扩展和libevent,此处还需要下载几个rpm包:
libmcrypt-2.5.8.4.e15.centos.i386.rpm
libmcrypt-devel-2.5.8.4.e15.centos.i386.rpm
mhash-0.9.9-1.el5.centos.i386.rpm
mhash-devel-0.9.9-1.el5.centos.i386.rpm
mcrypt-2.6.8-1.e15.i386.rpm
最好使用升级的方式安装上面的rpm包,命令格式如下:
rpm -Uvh
另外,也可以根据需要安装libevent,系统一般会自带libevent,但版本有些低,因此可以升级安装。它包含以下两个rpm包:
libevent-2.0.17-2.i386.rpm
libevent-devel-2.0.1702.i386.rpm
备注:
libevent是一个异步时间通知库文件,其API提供了在某文件描述上发生某事件时或其超时执行回调函数的机制,它主要是用来替换事件驱动的网络服务器上的event loop机制。目前来说,libevent支持/dev/poll,kqueue,select,poll,epoll以及solaris的event ports
1)tax xf php-5.4.13.tar.bz
2)cd php-5.4.13
3)./configure –prefix=/usr/local/php –with-mysql=/usr/local/mysql –with-openssl –enable-sockets –enable-sysvshm –with-mysqli=/usr/local/mysql/bin/mysql_config –enable-mbstring –with-freetype-dir –with-jpeg-dir–with-png-dir –with-zlib-dir –with-libxml-dir=/usr –enable-xml –with-mhash –with-mcrrypt –with-config-file-path=/etc –with-config-file-scan-dir=/etc/php.d –with-bz2 –with-curl
说明:
如果前面解决依赖关系时安装了mcrypt相关的两个rpm包,此处的./configure命令还可以带上–with-mcrypt选项让php支持mcrypt扩展,–with-snmp选项则用于实现php的snmp扩展,但此snmp功能要求提前安装net-snmp相关软件包
备注:
./configure的时候如果提示某些安装包没有装,使用命令yum list all|grep 包名 可以查看哪些包没装,然后直接yum -y install 没安装的包的包名即可(直接是包名,不需要加上版本号之类。yum list all 的时候如果状态是bash表示没有安装)
4)make
5)make install
6)为php提供配置文件:
cp php.ini-production /etc/php.ini
7)为php-fpm提供Sysv init脚本,并将其添加到服务列表:
cp sapi/fpm/init.d/php-fpm /etc/rc.d/init.d/php-fpm
chmod +x /etc/rc.d/init.d/php-fpm
8)chkconfig –add php-fpm
9)chkconfig php-fpm on
10)为php-fpm提供配置文件:
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
11)编译php-fpm配置文件:
vi /usr/local/php/etc/php-fpm.conf
配置fpm相关选项为你所需要的值,并启用pid文件(如下最后一行):
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8
pid = /usr/local/php/var/run/php-fpm.pid
12)接下来就可以启动php-fpm:
service php-fpm start
13)验证:使用如下命令,如果命令输出有几个fpm-php进程说明启动成功
ps aux|grep php-fpm