前面介绍的是以 remi 源安装,它会自动安装最新的 PHP 以及它的一些扩展。但是有时候我们需要一些低版本的 PHP,比如 PHP 5.3.x 之类的。这里可以使用源码编译的方式安装。
首先是最基本的下载,解压,编译安装(以PHP 5.3.6 为例):
wget http://www.php.net/get/php-5.3.6.tar.gz/from/this/mirror
tar xzvf php-5.3.6.tar.gz
cd php-5.3.6
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm
make && make install
cp php.ini-production /usr/local/php/etc/php.ini
如果提示:configure error xml2-config not found. please check your libxml2 installation
检查是否安装了libxml包:
# rpm -qa |grep libxml2
libxml2-2.6.26-2.1.12
libxml2-python-2.6.26-2.1.12
重新安装libxml2和libxml2-devel包, yum安装的时候发现新版本会提示更新,需要更新的可以更新,不要跳过就行了。
# yum install libxml2
# yum install libxml2-devel -y
OK,PHP这样就安装成功了,接下来是配置 php-fpm。
[root@nowamagic ~]# /usr/local/php/sbin/php-fpm
[05-Oct-2013 12:09:26] ALERT: [pool www] pm.min_spare_servers(0) must be a positive value
[05-Oct-2013 12:09:26] ERROR: failed to post process the configuration
报错了。
编辑php-fpm.conf
cd /usr/local/php/etc/
cp php-fpm.conf.default php-fpm.conf
vim php-fpm.conf
找到pid = run/php-fpm.pid把前面的注释符号删掉。
下面启动php-fpm并重启nginx
/usr/local/php/sbin/php-fpm
service nginx restart
再次编辑php-fpm.conf找到pm.min_spare_server ;pm.min_spare_servers = 5 去除;号。
执行以下命令,并再次启动 php-fpm
[root@nowamagic ~]# sed -i 's/;pm.max_spare_servers = 35/pm.max_spare_servers = 35/g' /usr/local/php/etc/php-fpm.conf
[root@nowamagic ~]# /usr/local/php/sbin/php-fpm
[05-Oct-2013 12:13:51] WARNING: [pool www] pm.start_servers is not set. It's been set to 20.
还是报错,但是报错信息不一样了。
继续:
[root@nowamagic ~]# sed -i 's/;pm.start_servers = 20/pm.start_servers = 20/g' /usr/local/php/etc/php-fpm.conf
[root@nowamagic ~]# /usr/local/php/sbin/php-fpm
[05-Oct-2013 12:14:09] ERROR: bind() for address '127.0.0.1:9000' failed: Address already in use (98)
OK,现在就是解决端口问题就行了。
netstat -ntlp | grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 14096/php-fpm
原来是 php-fpm 占用了。kill掉就行。
[root@nowamagic ~]# killall php-fpm
[root@nowamagic ~]# /usr/local/php/sbin/php-fpm
php-fpm 启动成功。