随机unix:/tmp/php5-fpm.sock失败

时间:2014-08-14 16:29:16

标签: unix nginx php

我正在检查我的error.log并发现了一些失败的

connect() to unix:/tmp/php5-fpm.sock failed

权限很好afaik。

是什么给出了?

由nginx拥有:nginx 权限660 显然是在运行nginx。

www.conf

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

default.conf(nginx)

fastcgi_pass   unix:/tmp/php5-fpm.sock;

运行PHP 5.5.14

1 个答案:

答案 0 :(得分:0)

从PHP 5.5.12开始,更改了FPM套接字权限以解决与安全性相关的错误,您可以在此处阅读更多相关信息 - > https://bugs.php.net/bug.php?id=67060

您的listen.mode = 0660现在应设置为listen.mode = 0666

至于Nginx,这是我目前正在使用的一个工作示例:

# PHP-FPM Support
location ~ \.php$ {
    fastcgi_pass unix:/usr/local/etc/php-fpm/nginx.sock;
    include fastcgi.conf;
}

我希望你能按照要求提供更多的配置细节。通过尝试猜测您的情况/配置设置,缺乏这一点使其变得更加困难。

确保FPM池配置内部定义了以下设置:

[nginx]
listen = /usr/local/etc/php-fpm/nginx.sock
user = nginx
group = nginx
listen.owner = nginx
listen.group = nginx
listen.mode = 0666

您会注意到我的收听路径正在使用/usr/local/etc/php-fpm,但您可以用自己选择的路径替换它们。

我发现你目前正在使用/tmp,虽然使用它没有遇到什么大问题,但我建议不要使用它,并创建一个专用目录来保存你的FPM套接字。

我检查了/usr/local/etc/php-fpm目录的权限,默认为755,目前由root:root拥有。

尝试一下,我确信它会起作用,除非你有其他随机发生的事情,而且你所提供的当前信息并不明显。