1. 程式人生 > >php-fpm的重啟方法

php-fpm的重啟方法

啟動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 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 發現:

[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'