Fedora - Nginx PHP-FPM - 不断将 FPM 套接字更改为 root

Fedora - Nginx PHP-FPM - 不断将 FPM 套接字更改为 root

如果我的术语不符合标准,请提前道歉。

所以我刚刚在带有 Nginx 和多个 PHP 版本的 Fedora Workstation 上成功设置了我的工作开发机器(使用 Remi Collet 的 Software Collection)。我有 PHP-5.6.30 监听端口 9056,PHP-7.0.19 监听端口 9070。这工作得很好。

今天早上,我决定尝试使用 FPM 套接字运行两个 PHP 实例,最初它一直有效,直到我重新启动 PHP-FPM 服务(这导致了502错误的网关在浏览器中,以及(13) 拒绝许可nginx error.log 中出现错误)。

因此以 PHP5.6 为例...当我第一次启动php56-php-fpm生成的服务时/opt/remi/php56/root/var/run/php-fpm/www.sock,我将生成www.sock文件的用户和组更改为nginx:nginx。重新启动后,php56-php-fpm我得知www.sock正在重置为root:root.现在我不会不断地重新启动 FPM,但必须有一种方法可以在.sock文件上设置一些默认值?我的 fpm conf 文件如下所示:

我意识到这听起来像是一个痛苦的正确工作,考虑到我这样做只是为了本地开发,我确实使用端口 9056 和 9070 使这一切都正常工作。但我读到,使用套接字与 TCP 相比有一些速度优势,任何可以加快我的本地开发环境的事情都值得付出努力。

所以我的问题是:

  1. 我的配置中有什么不正确导致 www.sockroot:root在重新启动相应的 FPM 服务后重置为?
  2. 放弃端口而转向套接字真的值得吗?
  3. [稍微偏离主题]:使用 Remi Collet 的软件集合,我看到 2 个 PHP 软件包安装到不同的位置:/opt/remi/php56并且/etc/opt/remi/php70......为了保持一致性,我是否应该考虑将其中一个移动到更常见的位置?

谢谢

答案1

有几件事需要检查...

1) 默认情况下,CentOS 下的 PHP 目录中不包含配置文件php-fpm.d,请确保include=/opt/remi/php56/root/etc/php-fpm.d/*.conf该文件中包含配置文件php-fpm.conf

2) 您需要确保在 php-fpm 池配置中设置套接字所有权,例如:

[www]
listen       = /opt/remi/php56/root/var/run/php-fpm/$pool.sock
listen.owner = someuser
listen.group = somegroup
listen.mode  = 0600

答案2

就我自己的 remi 而言php80-php-fpm,我必须将listen.acl_users变量更改../php-fpm.d/www.conf为我的网络服务器的用户。例如:

;comment: replace mywebserveruser with your own user 
listen.acl_users = mywebserveruser

相关内容