Ubuntu

在 Ubuntu 伺服器上重新啟動後,PHP 5 FPM 套接字文件的目錄被刪除

  • August 3, 2014

我創建了一個目錄來儲存 PHP 5 FPM 的套接字文件:sudo mkdir /var/run/php-fpm. 它由root:root核心 PHP FPM 程序擁有。

當 PHP FPM 啟動時,它會為此目錄中的每個池創建套接字文件,並且 nginx 使用它們進行通信。

但是,當我重新啟動我的機器 ( sudo reboot) 後,該目錄在重新啟動後消失了,PHP FPM 無法啟動,因為它無法在失去的目錄中創建套接字文件。

可能是什麼問題?我該如何調試它?

我正在使用最新的 Ubuntu Server 14.04。

目前版本的 Ubuntu 使用所謂的啟動配置來執行服務。可以在此處找到有關此的更多資訊。

所有啟動腳本都位於該/etc/init目錄中。不要將它與/etc/init.d目錄中的舊初始化腳本混淆。

正如@Rhim 在他的回答中所說,/var/run是一個臨時掛載的文件系統,每次重新啟動後都會重新創建,因此更改不會保留在其中。因此,為了為套接字文件創建一個自定義目錄,您必須每次都創建它。添加此類功能的最佳位置是位於以下位置的 PHP FPM 新貴配置:/etc/init/php5-fpm.conf.

這是此配置的修改版本:

# php5-fpm - The PHP FastCGI Process Manager

description "The PHP FastCGI Process Manager"
author "Ondřej Surý <ondrej@debian.org>"

start on runlevel [2345]
stop on runlevel [016]

# Precise upstart does not support reload signal, and thus rejects the
# job. We'd rather start the daemon, instead of forcing users to
# reboot https://bugs.launchpad.net/ubuntu/+source/php5/+bug/1272788
#
# reload signal USR2

pre-start script
   mkdir -p /var/run/php-fpm
   /usr/lib/php5/php5-fpm-checkconf
end script

respawn
exec /usr/sbin/php5-fpm --nodaemonize --fpm-config /etc/php5/fpm/php-fpm.conf

pre-start節已用於檢查 PHP FPM 配置文件,因此我已將其轉換為腳本部分並添加了我自己的命令,用於在呼叫checkconf.

使用此腳本,它應該可以正常工作。為了控制服務的狀態,請使用如下service命令:service php5-fpm startservice php5-fpm restart

我希望它會幫助某人。乾杯!

引用自:https://serverfault.com/questions/615461