我已经将我的设置php5-fpm
为绑定到其中的 unix 域套接字/var/run/php5-fpm
。
/etc/php5/fpm/pool.d/www.conf
listen = /var/run/php5-fpm/$pool.sock
问题是它不会自动创建php5-fpm
目录。当我重新启动机器时,目录就消失了。
我怎样才能让它在启动时自动创建?或者还有其他方法可以解决这个问题?
答案1
你可能已经发现,/var/run 在设计上是短暂的。检查跳频以获取有关它和其他目录的更多信息。
在 php-fpm 尝试使用之前,/var/run/php5-fpm 目录必须存在。php-fpm 和 init 脚本似乎都没有创建它,所以您必须介入。
最简单的选择是调整您的 init 脚本,以非常特定于您的环境的方式创建目录。缺点是,这会增加您必须在“系统管理员工具包”中携带的负担。
还有另外两个选项,虽然更复杂,但可以成为您和其他人的永久解决方案:
提交补丁至php-fpm源代码,以便检查 .conf 文件中定义的目录是否存在。这将需要了解 C 和 PHP 的进程补丁提交。
将补丁提交给您的 Linux 发行版的 init 系统,以便它执行相同的操作。这可能更容易(与第一个选项相比),并且可能需要了解 shell 脚本以及您的发行版的补丁提交流程。
您可以快速修复(更改您的初始化脚本)并继续前进,但一个不错的练习是遵循其中一个永久选项,以便其他人可以受益。这很简单,可能会让您迷上为开源项目做贡献(如果您还没有这样做,请原谅我的无知)。
答案2
嘿,你需要在 /run 文件夹中创建 PHP 目录,然后以 root 身份重新启动 PHP,如果你使用的是 php7.2,你需要写入 $ sudo /etc/init.d/php7.2-fpm restart
一切都会按预期进行