- ◆简介
虽然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不是很熟悉,产生错误在所难免请指出,谢谢。按照本文的配置方式而产生的损失本人概不承担。如果你使用了本文配置方法,表示已经接受此免责声明。
◆感谢
感谢你的浏览,感谢你的使用,如果你浏览或者使用到了的话。感谢反馈错误,如果你反馈了的话。
PHP更新这个还没搞过呗。先了解一下下。
Ourselves has 32 radical drama and actions. http://aseoju.com
有方法能定时reload一下php-fpm吗?
@xingxing, 很简单啊,做一个shell脚本,然后加入计划任务
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
不知如何解决?
最近在研究linux+openssl,能提供些帮助么~~~
我是linux小白,哈哈。
@小狼, 可以用openssl 加密tcp传输的。使用没什么难的,就是编译安装软件。 组建依存关系,兼容一类的·
不准备升级。
@囧啊囧, 你是用的kloxo没必要升的·