Sla*_* II 6 ubuntu php nginx php-fpm socket
我创建了一个目录,用于存储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 使用所谓的up-start配置来运行服务。可以在此处找到有关此的更多信息。
所有启动脚本都位于该/etc/init
目录中。不要将它与/etc/init.d
目录中的旧 init 脚本混淆。
正如@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
Run Code Online (Sandbox Code Playgroud)
pre-start
节已经用于检查 PHP FPM 配置文件,因此我已将其转换为脚本部分并添加了我自己的命令,用于在调用checkconf
.
使用此脚本,它应该可以正常工作。为了控制服务的状态下使用该service
命令是这样的:service php5-fpm start
,service php5-fpm restart
等
我希望它会帮助某人。干杯!
归档时间: |
|
查看次数: |
4517 次 |
最近记录: |