Nginx无法渲染index.php页面,502错误如何排查?
502 Bad Gateway 问题排查步骤
1. 确认PHP-FPM(或PHP-CGI)是否正常运行
502错误的核心原因是Nginx无法连接到PHP处理进程:
- Windows环境下,打开任务管理器查看是否有
php-cgi.exe进程;也可以手动启动PHP-CGI:执行命令php-cgi -b 127.0.0.1:9000,保持命令行窗口打开。 - 若使用PHP-FPM(类Unix环境),执行
ps aux | grep php-fpm查看进程,或用systemctl status php-fpm检查服务状态。
2. 修正Nginx配置中的文件路径错误
你的location ~ \.php$块里,fastcgi_param SCRIPT_FILENAME配置错误:
原配置:
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
这会让PHP-FPM去/scripts目录找文件,但你的PHP文件实际在html目录。改成:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
$document_root会自动对应你设置的root html的绝对路径,确保PHP能找到正确的文件。
3. 核对PHP-FPM的监听地址与Nginx配置一致
检查PHP-FPM的配置文件(如www.conf)中的listen项,必须和Nginx里的fastcgi_pass完全匹配:
- 若Nginx用
127.0.0.1:9000,PHP-FPM的listen也需设为127.0.0.1:9000,不能是/run/php-fpm.sock这类Unix套接字路径。
4. 查看Nginx错误日志获取具体线索
打开nginx/logs/error.log文件,里面会记录502错误的详细原因:
- 若显示
connection refused,说明PHP进程没运行或监听地址不对; - 若显示
No such file or directory,说明文件路径配置错误。
修改配置后,记得重启Nginx生效:执行nginx -s reload(Windows下在nginx目录运行nginx.exe -s reload)。
内容的提问来源于stack exchange,提问作者danilo
相关产品推荐
相关产品推荐

