php-fpm啟動,重啟,終止操作


  最近安裝了mysqli擴展,重啟了nginx后,phpinfo()沒有顯示出mysqli,后來搞不出原因,直接使用了pdo連接數據庫。直到今天安裝redis后phpinfo()沒有顯示redis,內心那一萬只奔騰的草泥馬終於爆發,狂找辦法,才知道是php-fpm沒有重啟,按網上的方法鼓搗,完全就是百度文章一家親,沒有一個說到點上,最后還是鼓搗出來了,下面說說php-fpm啟動,重啟,終止操作方法。

 

啟動php-fpm:

/usr/local/php/sbin/php-fpm

 

php 5.3.3 以后的php-fpm 不再支持 php-fpm 以前具有的 /usr/local/php/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   4月18   0:19 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)
nobody   42892  0.0  0.6 183000  6516 ?        S    4月18   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了。

 

上面方案一般是沒有生成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

 

pid文件路徑應該位於/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'

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM