在Ubuntu Server上重新启动后,将删除PHP 5 FPM套接字文件的目录

我已经创建了一个目录来存储 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 configs来运行服务.有关此产品的更多信息,请访问 here.

所有上行脚本都位于/ etc / init目录中.不要将它与/etc/init.d目录中的旧init脚本混淆.

正如@Rhim在他的回答中所说,/ var / run是一个临时挂载的文件系统,每次重启后都会重新创建,因此不会保留更改.因此,为了拥有套接文件自定义目录,您必须每次都创建它.添加此类功能的最佳位置是位于以下位置的PHP FPM的upstart配置:/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 stanza已用于检查PHP FPM配置文件,因此我将其转换为脚本部分并添加了我自己的命令,用于在调用checkconf之前创建socket文件的目录.

使用此脚本它应该可以正常工作.为了控制服务的状态,使用如下服务命令:service PHP5-fpm start,service PHP5-fpm restart等.

我希望它会帮助某人.干杯!

相关文章

1.安装过程出现0x00000000指令引用的0x00000000内存该内存不能为written 如果你安装的是inux系统 需要在...
写在全面:如果根据以下教程涉及到只读文件需要更改文件权限才能需修改文件内容,参考我的另一篇博客:...
写在前面:以下步骤中需要在终端输入命令,电脑端查看博客的朋友可以直接复制粘贴到终端,手机端查看的...
ubuntu16.04和18.04更换国内源 写在前面:安装好ubuntu双系统后,默认的软件更新源是国外的,在国内使用...
ubuntu双系统启动时卡死解决办法(在ubuntu16.04和18.04测试无误) 问题描述: 在安装完ubuntu双系统后...
又来造轮子了。。。。。。。。。。。。。。。。 今天使用w3af向文件中写入的时候,发现没有write权限,...