php-fpm 操作命令

以下内容转自 https://www.cnblogs.com/alibai/p/4070076.html 和 https://blog.csdn.net/wzx19840423/article/details/79071928

先来理解一下什么是php-fpm

PHP-FPM是一个PHP FastCGI管理器,是只用于PHP的。   

PHP-FPM其实是PHP源代码的一个补丁,旨在将FastCGI进程管理整合进PHP包中。必须将它patch到你的PHP源代码中,在编译安装PHP后才可以使用。   现在我们可以在最新的PHP 5.3.2的源码树里下载得到直接整合了PHP-FPM的分支,据说下个版本会融合进PHP的主分支去。相对Spawn-FCGI,PHP-FPM在CPU和内存方面的控制都更胜一筹,而且前者很容易崩溃,必须用crontab进行监控,而PHP-FPM则没有这种烦恼。   

PHP5.3.3已经集成php-fpm了,不再是第三方的包了。PHP-FPM提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置,比spawn-fcgi具有更多优点,所以被PHP官方收录了。在./configure的时候带 –enable-fpm参数即可开启PHP-FPM。   使用PHP-FPM来控制PHP-CGI的FastCGI进程
(www.111cn.net)

启动php-fpm: 
/Data/apps/php7/sbin/php-fpm(这是源码包凡事安装的) 
php 5.3.3 以后的php-fpm 不再支持 php-fpm 以前具有的 /Data/apps/php7/sbin/php-fpm(start|stop|reload)等命令,所以不要再看这种老掉牙的命令了,需要使用信号控制:

master进程可以理解以下信号

INT, TERM 立刻终止 
QUIT 平滑终止 
USR1 重新打开日志文件 
USR2 平滑重载所有worker进程并重新载入配置和二进制模块

一个简单直接的重启方法:

先查看php-fpm的master进程号

1 # ps aux|grep php-fpm
2 root     21891  0.0  0.0 112660   960 pts/3    R+   16:18   0:00 grep --color=auto php-fpm
3 root     42891  0.0  0.1 182796  1220 ?        Ss   4月18   0:19 php-fpm: master process (/Data/apps/php7/etc/php-fpm.conf)
4 nobody   42892  0.0  0.6 183000  6516 ?        S    4月18   0:07 php-fpm: pool www
5 nobody   42893  0.0  0.6 183000  6508 ?        S    4月18   0:17 php-fpm: pool www

重启php-fpm:

kill -USR2 42891

OK了。 
以下方法没试过copy过来的

上面方案一般是没有生成php-fpm.pid文件时使用,如果要生成php-fpm.pid,使用下面这种方案:

上面master进程可以看到,matster使用的是/usr/local/php/etc/php-fpm.conf这个配置文件,cat /usr/local/php/etc/php-fpm.conf 发现:

1 [global]
2 ; Pid file
3 ; Note: the default prefix is /usr/local/php/var
4 ; Default Value: none
5 ;pid = run/php-fpm.pid

pid文件路径应该位于/usr/local/php/var/run/php-fpm.pid,由于注释掉,所以没有生成,我们把注释去除,再kill -USR2 42891 重启php-fpm,便会生成pid文件,下次就可以使用以下命令重启,关闭php-fpm了:

1 php-fpm 关闭:
2 kill -INT 'cat /usr/local/php/var/run/php-fpm.pid'
3 php-fpm 重启:
4 kill -USR2 'cat /usr/local/php/var/run/php-fpm.pid'

启动php-fpm: 
/Data/apps/php7/sbin/php-fpm(这是源码包凡事安装的) 
php 5.3.3 以后的php-fpm 不再支持 php-fpm 以前具有的 /Data/apps/php7/sbin/php-fpm(start|stop|reload)等命令,所以不要再看这种老掉牙的命令了,需要使用信号控制:

master进程可以理解以下信号

INT, TERM 立刻终止 
QUIT 平滑终止 
USR1 重新打开日志文件 
USR2 平滑重载所有worker进程并重新载入配置和二进制模块

一个简单直接的重启方法:

先查看php-fpm的master进程号

# ps aux|grep php-fpm
root     21891  0.0  0.0 112660   960 pts/3    R+   16:18   0:00 grep --color=auto php-fpm
root     42891  0.0  0.1 182796  1220 ?        Ss   418   0:19 php-fpm: master process (/Data/apps/php7/etc/php-fpm.conf)
nobody   42892  0.0  0.6 183000  6516 ?        S    418   0:07 php-fpm: pool www
nobody   42893  0.0  0.6 183000  6508 ?        S    418   0:17 php-fpm: pool www

 

 

 

 

 

重启php-fpm:

kill -USR2 42891

OK了。 
以下方法没试过copy过来的

上面方案一般是没有生成php-fpm.pid文件时使用,如果要生成php-fpm.pid,使用下面这种方案:

上面master进程可以看到,matster使用的是/usr/local/php/etc/php-fpm.conf这个配置文件,cat /usr/local/php/etc/php-fpm.conf 发现:

[global]
; Pid file
; Note: the default prefix is /usr/local/php/var
; Default Value: none
;pid = run/php-fpm.pid

 

 

 

 

id文件路径应该位于/usr/local/php/var/run/php-fpm.pid,由于注释掉,所以没有生成,我们把注释去除,再kill -USR2 42891 重启php-fpm,便会生成pid文件,下次就可以使用以下命令重启,关闭php-fpm了:

php-fpm 关闭:
kill -INT 'cat /usr/local/php/var/run/php-fpm.pid'
php-fpm 重启:
kill -USR2 'cat /usr/local/php/var/run/php-fpm.pid'
原文地址:https://www.cnblogs.com/geloutingyu/p/9677708.html