快速定位与修复流程
常见错误对照与修复
| 症状 | 可能原因 | 快速修复 |
|---|---|---|
| 502 Bad Gateway | PHP-FPM 未启动、崩溃或与 Web 服务器通信不一致 | 启动/重启服务;核对 listen=127.0.0.1:9000 或 listen=/run/php/php7.x-fpm.sock 与 Nginx/Apache 配置一致 |
| 504 Gateway Timeout | 脚本执行超时、进程不足 | 调整 request_terminate_timeout(或 pool 的 request_timeout);增加 pm.max_children;优化慢脚本 |
| Permission denied(13) 连接 Unix 套接字 | 套接字权限/属主不匹配 | 在 www.conf 设置 listen.owner=www-data、listen.group=www-data、listen.mode=0660;确保目录可访问 |
| Primary script unknown | Nginx 未正确传递脚本路径 | 在 Nginx 配置加入:fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 并核对 root 路径 |
| 进程池耗尽 | pm.max_children 太小或慢请求占满 | 提升 pm.max_children;开启慢日志定位问题;必要时改用 ondemand/dynamic |
| Allowed memory exhausted | 脚本内存超限 | 提升 memory_limit(php.ini);优化代码与查询 |
| 端口冲突(9000 被占用) | 其他进程占用 9000 | 更换 listen 端口或停止占用进程 |
| 空白页/无输出 | 错误未显示、语法错误 | 临时开启 display_errors=On;查看 php-fpm.log;用 php -l file.php 检查语法 |
配置与性能优化要点
Nginx 与防火墙的关键配置
仍未解决时的进阶排查