Heim >Backend-Entwicklung >PHP-Tutorial >nginx 起动停止 php 5.3.18 中 php-fpm 启动 关闭 配置 成服务启动

nginx 起动停止 php 5.3.18 中 php-fpm 启动 关闭 配置 成服务启动

WBOY
WBOYOriginal
2016-06-13 10:58:49865Durchsuche

nginx 启动停止 php 5.3.18 中 php-fpm 启动 关闭 配置 成服务启动

从php5.3.3开始 源码中开始包含 php-fpm,不用专门再打补丁了,只需要解开源码直接configure,
关于php-fpm的编译参数有 –enable-fpm –with-fpm-user=www –with-fpm-group=www –with-libevent-dir=libevent位置。

这个php-fpm 不再支持 php-fpm 补丁具有的 /usr/local/php/sbin/php-fpm (start|stop|reload)等命令,需要使用信号控制:

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`


其次配置文件不再使用的xml 格式,改为了INI,但是配置参数几乎和以前一样,可参照xml格式的格式配置。


—————-补充内容php 5.3.6 中 php-fpm 配置 成 服务启动—————-

cp -f /tools/php-5.3.6/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
php-fpm的启动:
##vim /usr/local/webserver/php/etc/php-fpm.conf
php-fpm.pid 目录必须是:/usr/local/webserver/php/var/run/php-fpm.pid

chmod 755 /etc/init.d/php-fpm
/etc/init.d/php-fpm start
/sbin/chkconfig --add php-fpm (添加到开机服务列表)
/sbin/chkconfig php-fpm on

php-fpm的启动、停止和重启:
/etc/init.d/php-fpm start
/etc/init.d/php-fpm stop

/etc/init.d/php-fpm reload

启动效果如下:
Hai_ISD_7_9_Cent56_64:/usr/local/webserver/php/etc#service php-fpm start
Starting php-fpm  done
Hai_ISD_7_9_Cent56_64:/usr/local/webserver/php/etc#service php-fpm stop
Gracefully shutting down php-fpm . done
Hai_ISD_7_9_Cent56_64:/usr/local/webserver/php/etc#service php-fpm start
Starting php-fpm  done
Hai_ISD_7_9_Cent56_64:/usr/local/webserver/php/etc#service php-fpm reload
Reload service php-fpm  done

 

 

nginx中涉及的路径最好采用绝对路径

1. nginx的启动(nginx.conf文件基本上位于nginx主目录中的conf目录中)

    nginx -c nginx.conf

2. nginx的停止(nginx.pid文件基本上位于nginx主目录中的logs目录中)

   ps -ef | grep nginx, 可发现数个nginx进程,其中标有master的为主进程,其它为子进程, 停止nginx主要就是对主进程进行信号控制.

    1). 从容停止

        kill -QUIT `cat nginx.pid`

    2). 快速停止

        kill -TERM `cat nginx.pid`

        or

        kill -INT `cat nginx.pid`

    3). 强制停止

        kill -9 `cat nginx.pid`


3. nginx的平滑重启

    首先要验证新的配置文件是否正确: nginc -t -c nginx.conf, 成功后向主进程发送HUP信号即可: kill -HUP `cat nginx.pid`


4. nginx的平滑升级

    1)备份好旧的可执行文件,使用新版本替换旧版本

    2)kill -USR2 旧版本的主进程PID   进行平滑升级, 此时新老版本共存

    3)kill -WINCH 旧版本的主进程PID  逐步关闭旧主进程的工作进程

    4)当旧主进程产生的工作进程全部关闭后, 可以决定是否使用新版本还是旧版本.(需要使用kill命令来杀死新或旧主进程)


#!/bin/sh 

BASE_DIR='/usr/local/'

${BASE_DIR}nginx/sbin/nginx -t -c ${BASE_DIR}nginx/conf/nginx.conf >& ${BASE_DIR}nginx/logs/nginx.start 

info=`cat ${BASE_DIR}nginx/logs/nginx.start` 

if [ `echo $info | grep -c "syntax is ok" ` -eq 1 ]; then 

if [ `ps aux|grep "nginx"|grep -c "master"` == 1 ]; then 

kill -HUP `cat ${BASE_DIR}nginx/logs/nginx.pid` 

echo "ok" 

else 

killall -9 nginx 

sleep 1 

${BASE_DIR}nginx/sbin/nginx 

fi 

else 

echo "######## error: ########" 

cat ${BASE_DIR}nginx/logs/nginx.start 

fi

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn