Lnmp一键包中更新php-fpm至php5.3.3

  •        
  •       ◆简介

      虽然lnmp中带的php5.2.10已经能够满足目前的php程序运行。不过看到php5.3.3发布后一直没有更新。就像我用nginx一只用着最新的工程预览版。看了下php5.3.3已经自带php-fpm了。只需要咋编译配置php的时候加上 –enable-fpm 参数。以前补丁上fpm是通过xml文件配置的。新版本的php5.3.3的fpm是通过ini文件配置的。遗憾的是php5.3.3 不支持Zend Optimizer  还有文中我用旧php.ini文件放到里面产生了很多问题,如果你遇到什么问题请留言给我。贴出启动php-pmf的报错代码。^_^。2010年8月17日13:21:32成功升级php为php5.3.3

php 5.3.3 源码中开始包含 php-fpm,不用专门再打补丁了,只需要解开源码直接configure,关于php-fpm的编译参数有 –enable-fpm –with-fpm-user=www –with-fpm-group=www –with-libevent-dir=libevent位置。

这个php-fpm 不再支持 php-fpm 补丁具有的 /usr/local/php/sbin/php-fpm (start|stop|reload)等命令,需要使用信号控制:

master进程可以理解以下信号

SIGINT, SIGTERM 立刻终止

SIGQUIT 平滑终止

SIGUSR1 重新打开日志文件

SIGUSR2 平滑重载所有worker进程并重新载入配置和二进制模块

示例:

php-fpm 关闭:

kill -SIGINT `cat /usr/local/php/var/run/php-fpm.pid`

php-fpm 重启:

kill -SIGUSR2 `cat /usr/local/php/var/run/php-fpm.pid`

      ◆安装过程

wget http://www.php.net/distributions/php-5.3.3.tar.gz

wget http://download.suhosin.org/suhosin-patch-5.3.3-0.9.10.patch.gz

tar zxvf php-5.3.3.tar.gz  #获取php5.3.3 获取php的安全补丁suhosin

gzip -d ./suhosin-patch-5.3.3-0.9.10.patch.gz #gzip成patch文件

cd php-5.3.3/

patch -p 1 -i ../suhosin-patch-5.3.3-0.9.10.patch #补丁上suhosin

./buildconf –force

./configure –enable-fpm –prefix=/usr/local/php –with-config-file-path=/usr/local/php/etc –with-mysql=/usr/local/mysql –with-mysqli=/usr/local/mysql/bin/mysql_config –with-iconv-dir –with-freetype-dir –with-jpeg-dir –with-png-dir –with-zlib –with-libxml-dir=/usr –enable-xml –disable-rpath –enable-discard-path –enable-magic-quotes –enable-safe-mode –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –with-curl –with-curlwrappers –enable-mbregex –enable-fastcgi –enable-fpm –enable-force-cgi-redirect –enable-mbstring –with-mcrypt –enable-ftp –with-gd –enable-gd-native-ttf –with-openssl –with-mhash –enable-pcntl –enable-sockets –with-xmlrpc –enable-zip –enable-soap –without-pear –with-gettext –with-mime-magic –enable-suhosin    #配置php 记得这里加上了 –enable-fpm  启用fpm

make ZEND_EXTRA_LIBS=’-liconv’  #编译php5.3.3

/usr/local/php/sbin/php-fpm stop #停止fast cgi php。 此刻php解析已经报 bad gateway了。

cp /usr/local/php/etc/php-fpm.conf /home/php-fpm.conf

cp /usr/local/php/etc/php.ini /home/php.ini #备份2个配置文件

rm -rf /usr/local/php/ #删除老版本php

make install #安装新php5.3.3

cd /usr/local/php/etc/

cp cp php-fpm.conf.default php-fpm.conf

#编辑php-fpm.conf

[global]

pid = /usr/local/php/var/run/php-fpm.pid

error_log = /usr/local/php/var/log/php-fpm.log

log_level = notice

[www]

listen = 127.0.0.1:9000

user = www

group = www

pm = dynamic

pm.max_children = 20 #这里是进程池 根据内存大小来!我的vps128内存的参数 
pm.start_servers = 2

pm.min_spare_servers = 1

pm.max_spare_servers = 3
cp /home/php.ini /usr/local/php/etc/php.ini

#这里需要注意的是php.ini中 memcache pdomysql等 路径问题 需要自己改。 php5.3.3中已经有变化。

cd ..

tar zxvf memcache-2.2.5.tgz

cd memcache-2.2.5/

/usr/local/php/bin/phpize

./configure –with-php-config=/usr/local/php/bin/php-config

make && make install

cd ../

tar zxvf PDO_MYSQL-1.0.2.tgz

cd PDO_MYSQL-1.0.2/

/usr/local/php/bin/phpize

./configure –with-php-config=/usr/local/php/bin/php-config –with-pdo-mysql=/usr/local/mysql

make

make install

cd ../

启动php fast cgi:

/usr/local/php/sbin/php-fpm

      ◆注意

本文未完成脚本的自动化,请参考本文手动配置,本人对linux不是很熟悉,产生错误在所难免请指出,谢谢。按照本文的配置方式而产生的损失本人概不承担。如果你使用了本文配置方法,表示已经接受此免责声明。

      ◆感谢

感谢你的浏览,感谢你的使用,如果你浏览或者使用到了的话。感谢反馈错误,如果你反馈了的话。

10 评论

  1. hi.
    我安装了php-fpm后,运行
    # /usr/local/php/sbin/php-fpm start
    显示:

    Starting php_fpm Dec 03 13:17:58.103818 [ERROR] fpm_unix_conf_wp(), line 124: please specify user and group other than root, pool ‘default’
    …………………
    ………….. failed

    不知如何解决?

    1. @小狼, 可以用openssl 加密tcp传输的。使用没什么难的,就是编译安装软件。 组建依存关系,兼容一类的·

回复 wwek 取消回复