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

Nginx搭配PHP-FPM出现Error 502权限拒绝问题求助

解决Nginx连接PHP-FPM套接字权限拒绝问题

核心问题定位

你的Nginx配置中指定的PHP-FPM套接字路径与实际路径不匹配,这是触发权限拒绝错误的首要原因:

  • Nginx配置里写的是 fastcgi_pass unix:/var/run/php8.2-fpm.sock;
  • 实际存在的套接字路径是 /run/php/php8.2-fpm.sock

分步解决步骤

1. 修正Nginx配置中的套接字路径

编辑你的网站Nginx配置文件,将fastcgi_pass行修改为实际路径:

location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass unix:/run/php/php8.2-fpm.sock; # 修正此处路径
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

2. 确认Nginx运行用户归属

检查Nginx的运行用户是否属于nginx组:

  • 打开Nginx主配置文件(通常为/etc/nginx/nginx.conf),确保顶部的user指令为:
    user nginx;
    
  • 验证Nginx进程的用户组:
    ps aux | grep nginx
    
    输出中Nginx worker进程的用户应显示为nginx,若不符,修改主配置后重启Nginx。

3. 排查SELinux限制(针对RHEL/CentOS系系统)

若上述步骤无效,大概率是SELinux阻止了Nginx访问套接字:

  • 临时关闭SELinux测试:
    setenforce 0
    
    若问题解决,执行以下命令永久修复套接字的SELinux上下文:
    semanage fcontext -a -t httpd_sys_rw_content_t "/run/php/php8.2-fpm.sock"
    restorecon -v /run/php/php8.2-fpm.sock
    

4. 重启服务验证

修改配置后,重启PHP-FPM和Nginx使变更生效:

systemctl restart php8.2-fpm
systemctl restart nginx

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 08:12:06