我正在使用 PHP7.0 运行 LEMP。
我的服务器块中有这个
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
但是当我打开网站时,它返回 502 Bad Gateway。以下是错误日志。
*1 connect() to unix:/var/run/php/php7.0-fpm.sock failed (13: Permission denied) while connecting to upstream, client: xxx.xxx.xxx.xxx, server: example.com, request: "GET / HTTP1.1", upstream: "fsatcgi://unix:/var/run/php/php7.0-fpm.sock:", host: "example.com"
它说没有权限。这里出了什么问题?我已经检查过了,但似乎找不到需要授予什么类型的权限。
谢谢。
答案1
我让它工作了。
php 用户是,www-data
但 nginx 用户是nginx
。
在这里检查 php:/etc/php/7.0/fpm/pool.d/www.conf
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
Nginx 用户位于/etc/nginx/nginx.conf
答案2
我已通过以下步骤解决了同一问题。
打开你的閣下網站文件(例如:sudo nano /etc/php-fpm.d/www.conf)最后,找到设置 listen.owner 和 listen.group 的行,并将其值从“nobody”更改为“nginx”:
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
最后,找到设置用户和组的行并将其值从“apache”更改为“nginx”:
user = nginx
group = nginx
重新启动 php-fpm(sudo service php-fpm restart)
答案3
vim /etc/php-fpm.d/www.conf 以这种方式改变 ;listen.owner = root ;listen.group = 根 ;listen.owner = 没人 ;listen.group = 没人 listen.owner = nginx listen.group = nginx 服务 php-fpm 重启 服务 nginx 重启 CentOS 版本 6.9(最终版)
答案4
确保运行 nginx 进程的用户有访问 php-fpm 套接字的权限。
这就是我在 AWS 上的配置。
我猜想以您的用户身份运行 php-process 和 nginx-pool,而不是以 root 用户身份运行。