PHP5-FPM 没有在 /var/run 内创建 unix 套接字目录

PHP5-FPM 没有在 /var/run 内创建 unix 套接字目录

我已经将我的设置php5-fpm为绑定到其中的 unix 域套接字/var/run/php5-fpm

/etc/php5/fpm/pool.d/www.conf

listen = /var/run/php5-fpm/$pool.sock

问题是它不会自动创建php5-fpm目录。当我重新启动机器时,目录就消失了。

我怎样才能让它在启动时自动创建?或者还有其他方法可以解决这个问题?

答案1

  1. 你可能已经发现,/var/run 在设计上是短暂的。检查跳频以获取有关它和其他目录的更多信息。

  2. 在 php-fpm 尝试使用之前,/var/run/php5-fpm 目录必须存在。php-fpm 和 init 脚本似乎都没有创建它,所以您必须介入。

    最简单的选择是调整您的 init 脚本,以非常特定于您的环境的方式创建目录。缺点是,这会增加您必须在“系统管理员工具包”中携带的负担。

还有另外两个选项,虽然更复杂,但可以成为您和其他人的永久解决方案:

  1. 提交补丁至php-fpm源代码,以便检查 .conf 文件中定义的目录是否存在。这将需要了解 C 和 PHP 的进程补丁提交

  2. 将补丁提交给您的 Linux 发行版的 init 系统,以便它执行相同的操作。这可能更容易(与第一个选项相比),并且可能需要了解 shell 脚本以及您的发行版的补丁提交流程。

您可以快速修复(更改您的初始化脚本)并继续前进,但一个不错的练习是遵循其中一个永久选项,以便其他人可以受益。这很简单,可能会让您迷上为开源项目做贡献(如果您还没有这样做,请原谅我的无知)。

答案2

嘿,你需要在 /run 文件夹中创建 PHP 目录,然后以 root 身份重新启动 PHP,如果你使用的是 php7.2,你需要写入 $ sudo /etc/init.d/php7.2-fpm restart

一切都会按预期进行

相关内容