参考、用户组
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的优化还有很多工作要做。