简介:这是[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地址以及端口 #表示php的fastcgi进程以什么用户以及用户组来运行 #是否显示php错误信息 #最大的子进程数目
登录后复制

下面运行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

09-13 16:35