用php-fpm管理php-cgi

参考、用户组
http://php-fpm.anight.org/
http://syre.blogbus.com/logs/20092011.html
http://groups.google.com/group/highload-php-en
用spawn-fcgi来运行php-cgi在管理上很不方面,特别是在线程控制上,最近经常遇到php-cgi僵死的事情,不知道是spawn-fcgi的问题还是php-cgi的问题,今天索性将节点中的一台改为php-fpm方式,比较看看效果。

描述 php自带的 spawn-fcgi + spawn-php.sh + daemontools php-fpm
php守护程序: pid file, log file, setsid(), setuid(), setgid(), chroot() (-) (+) (+)
进程控制,可以平滑地重启、重新载入配置和二进制模块而不丢失请求 php4 – php5 只能平滑停止 (-) (+)
限制ip地址,可以满足web server的要求 php4 (-) php5 (+) (从 5.2.2 开始) (-) (+)
根据负载动态调整进程数 (-) (-) Todo
使用用不同的uid / gid / chroot / 环境变量,不同的 php.ini 选项,不需要safe mode (-) (-) (+)
记录work process的stdout和stderr (-) (-) (+)
如果使用优化器,在遇到opcode缓存随机损坏的时候紧急重启所有进程 (-) (-) (+)
如果set_time_limit没有起作用,强制结束过期进程 (-) (-) Todo
特色功能 Error header、优化的上传支持、fastcgi_finish_request()

具体文档参考上面的链接,对于php-cgi的优化还有很多工作要做。

发表评论