You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

安装nginx/1.19.1与PHP7.4.8后访问info.php遇权限拒绝错误原因

解决Nginx连接PHP-FPM时的权限拒绝问题

嘿,先看你的错误日志,这里藏着个关键线索:

2020/07/30 10:30:10 [crit] 24996#24996: *1 connect() to unix:/var/run/php/php7.2-fpm.sock failed (13: Permission denied) while connecting to upstream...

但你贴的Nginx配置里,fastcgi_pass明明写的是php7.4-fpm.sock,这俩路径对不上啊!这是第一个要搞定的问题。

先排查配置冲突

你在server块里引用了snippets/fastcgi-php.conf,这个片段文件很可能已经定义了fastcgi_pass,直接覆盖了你自己写的设置。先打开看看:

cat /etc/nginx/snippets/fastcgi-php.conf

如果里面有一行fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;,直接把它改成php7.4-fpm.sock就行。

再解决权限问题(路径正确后)

要是路径改对了还是报权限拒绝,就得检查PHP-FPM sock文件的权限和归属了:

  1. 先看sock文件的当前权限:
ls -l /var/run/php/php7.4-fpm.sock

正常来说,这个文件的所属组应该是Nginx运行的用户(一般是www-data),权限至少是660,这样Nginx才能读写。

  1. 修改PHP-FPM的池配置:
    打开/etc/php/7.4/fpm/pool.d/www.conf,找到下面这几行,确保配置正确:
listen.owner = www-data
listen.group = www-data
listen.mode = 0660

要是Nginx用的不是www-data,就把上面的用户组改成你Nginx实际运行的用户(可以用ps aux | grep nginx查)。改完后重启PHP-FPM:

systemctl restart php7.4-fpm
  1. 最后重启Nginx让所有配置生效:
systemctl restart nginx

额外小提示:清理旧PHP版本的残留

你装了PHP7.4,但日志里出现了7.2的sock,说不定旧版本的PHP-FPM还在跑?检查一下:

systemctl status php7.2-fpm

要是它还在运行,直接停掉并禁用,省得以后搞混:

systemctl stop php7.2-fpm
systemctl disable php7.2-fpm

内容的提问来源于stack exchange,提问作者Dani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 17:27:59