php5.3.*中的php-fpm

用过nginx的phper应该对php-fpm深有印象,在php5.2系列中是通过为php源码打补丁的方式实现php-fpm的支持,在php/sbin/php-fpm中支持start/reload/stop等操作。

到了php5.3.x,php开始内置php-fpm的支持,在svn中可获取支持php-fpm的版本。
到了php5.3.3,默认即支持php-fpm
但是php/sbin/php-fpm的内容发生了变化,之前是一个脚本,现在是一个二进制文件,需要使用信号控制:
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`

最后我编写了一个简单的脚本来支持之前php-fpm的简单参数

#! /bin/sh

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
CMD=/usr/local/php/sbin/php-fpm
PID_FILE=/usr/local/php/var/run/php-fpm.pid
NAME=php-fpm
DESC=php-fpm

test -x $CMD || exit 0

case "$1" in
  start)
        echo -n "Starting $DESC: "
        $CMD
        echo "$NAME."
        ;;
  stop)
        echo -n "Stopping $DESC: "
        #SIGQUIT平滑终止,SIGINT立即终止
        /bin/kill -SIGQUIT `cat $PID_FILE`
        echo "$NAME."
        ;;
  restart|force-reload)
        echo -n "Restarting $DESC: "
        /bin/kill -SIGQUIT `cat $PID_FILE`
        $CMD
        echo "$NAME."
        ;;
  reload)
        echo -n "Reloading $DESC configuration: "
         /bin/kill -SIGUSR2 `cat $PID_FILE`
        echo "$NAME."
        ;;
  *)
        echo "Usage: $NAME {start|stop|restart|reload|force-reload}" >&2
        exit 1
        ;;
esac

exit 0
 
放入/etc/init.d/php-fpm
然后用rcconf设置为开机启动即可。
举例用法

重新加载php配置
/etc/init.d/php-fpm reload
平滑重启php进程
/etc/init.d/php-fpm restart 

配置php-fpm并运行
PHP5.3内置了fastcgi支持。
I.  生成配置文件
复制$PHP_DIR/etc/php-fpm.conf.default 到$PHP_DIR/etc/php-fpm.conf
打开一下两行注释:
pid = run/php-fpm.pid
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
II.. 启动php-fpm
$PHP_DIR/sbin/php-fpm
III. 停止php-fpm
killall -9 php-fpm

IV. 加入到服务中去并每次开机自动启动
cp  $PHP_SOURCE_DIR/sapi/fpm/init.d.php-fpm  /etc/init.d/php-fpm
chmod 700 /etc/init.d/php-fpm
chkconfig –add php-fpm
chkconfig –level 345 php-fpm on
服务方式启动php-fpm
service php-fpm restart

最后,有什么问题,大家可以给我留言哦,别忘了关注我的博客哦:

http://list.qq.com/cgi-bin/qf_invite?id=b6eb34388fd016582957d6e50d005146e24fe6b166ee66c0



此条目发表在Linux/Shell分类目录,贴了标签。将固定链接加入收藏夹。