已更新 php5-fpm,无法再使用套接字

已更新 php5-fpm,无法再使用套接字

今天早些时候,我更新了其中一台服务器上的软件包。其中一个软件包是 php5-fpm 的更新,这似乎破坏了我使用的能力unix:/var/run/php5-fpm.sock

免责声明:我最近才开始使用 Linux;我不充分了解这里发生了什么。

我已经查看了许多其他问题,但无法找到我的问题的答案,即如果我尝试使用php5-fpm.sock而不是传递给,我会收到 502 Bad Gateway 错误127.0.0.1:9000

根据其他问题,以下是一些看似相关的细节:

  • 我的php5-fpm过程跑步。
  • 我的/etc/php5/fpm/pool.d/www.conf文件有listen = /var/run/php5-fpm.sock
  • 我的服务器块有fastcgi_pass = unix:/var/run/php5-fpm.sock
  • php5-fpm.sock 存在于/var/run/

升级 php5-fpm 时,它询问我是否要覆盖我的 www.conf。我检查了差异,维护者的文件和我的文件之间的唯一变化是维护者的文件已listen = 127.0.0.1:9000设置为默认值。

选择覆盖并完成 php5-fpm 升级后,我打开/etc/php5/fpm/pool.d/www.conf并更改了 listen to listen = /var/run/php5-fpm.sock,就像它已经预先设置好了一样。然后我按顺序重新启动了 php5-fpm,然后是 nginx。

我现在访问域名时出现 502 错误,完全不知所措。如果我将listenwww.conf 和fastcgi_pass主机文件中的 更改为127.0.0.1:9000,则一切正常。如果这很重要,我正在使用 Ubuntu 12.04LTS。

非常感谢您的帮助。

答案1

您应该使用 ls -l /var/run/php5-fpm.sock 查看 php5-fpm.sock 文件的所有者

我相信您会发现它设置为 root,并且您的 Web 服务器以 www-data 身份运行。此外,www.conf 中的权限为 0660,这意味着只有 root 才有权限。

您可以取消注释与 sock 用户相关的行,并将其设置为 www-data,然后重新启动 php5-fpm 服务

相关内容