简介:这是[ZT] 使用PHP-FPM (PHP FastCGI Process Manager)来对php-cgi进程进行管理的详细页面,介绍了和php,有关的知识、技巧、经验,和一些php源码等。
class='pingjiaF' frameborder='0' src='http://biancheng.dnbcw.info/pingjia.php?id=334798' scrolling='no'>
如果使用PHP-FPM (PHP FastCGI Process Manager)来对进程进行管理,则需要提前做如下工作:
先到官网下载与php版本对应的php-fpm补丁:PHP-FPM
假设:php源代码目录在:/usr/local/php/source/php-5.2.9,php-fpm下载到了/usr/local/php/source
cd /usr/local/php/sourcegzip -cd php-5.2.8-fpm-0.5.10.diff.gz | patch -d php-5.2.9 -p1
补丁打好以后,编译php的时候增加了下面几个参数:
?enable-fpm 激活fastcgi模式的fpm支持
?with-fpm-conf php-fpm的配置文件(默认是PREFIX/etc/php-fpm.conf)
?with-fpm-log php-fpm的日志文件(默认是PREFIX/logs/php-fpm.log)
?with-fpm-pid php-fpm的pid文件(默认是PREFIX/logs/php-fpm.pid)
编译的时候?enable-fpm当然是必须的,其它几项可以根据你自己的情况自行调整。
编译参数:
cd /usr/local/src/php-5.2.9./configure --enable-fastcgi --enable-fpm --prefix=/usr/local/php --with-config-file-path=/etcmakemake install
其它的一些php编译参数,这里就略去了。
稍等片刻,等php编译并安装好,下面开始配置php-fpm。
vi /etc/php-fpm.conf
php-fpm.conf是一个xml格式的纯文本文件,具体细节可以自己打开看看,基本上一看就明白了。在这里特别注意一下这几个配置字段::
#这个表示php的fastcgi进程监听的ip地址以及端口<value name="listen_address">127.0.0.1:9000</value> #表示php的fastcgi进程以什么用户以及用户组来运行<value name="user">nobody</value><value name="group">nobody</value> #是否显示php错误信息<value name="display_errors">0</value> #最大的子进程数目<value name="max_children">5</value>
下面运行php-fpm:
/usr/local/php/bin/php-cgi --fpm
现在php的fastcgi进程就已经在后台运行,并监听127.0.0.1的9000端口。
可以用ps和netstat来看看结果:
ps aux | grep php-cginetstat -tpl | grep php-cgi
安装好了php-fpm,那么它是怎么来达到我们最初的目的的呢?
很幸运,php-fpm自己就给我们准备了一个程序来控制fastcgi进程,这个文件在$PREFIX/sbin/php-fpm
运行一下:
/usr/local/php/sbin/php-fpm
该程序有如下参数:
start 启动php的fastcgi进程
stop 强制终止php的fastcgi进程
quit 平滑终止php的fastcgi进程
restart 重启php的fastcgi进程
reload 重新加载php的php.ini
logrotate 重新启用log文件
也就是说,在修改了php.ini之后,我们可以使用
/usr/local/php/sbin/php-fpm reload
这样,保持php的fastcgi进程持续运行的状态下,又重新加载了php.ini。
转载自 http://www.wemvc.com/872.html
爱J2EE关注Java迈克尔杰克逊视频站JSON在线工具
http://biancheng.dnbcw.info/php/334798.html pageNo:10