PHP-FPM的常见错误有哪些?
参考资料
502 Bad Gateway
原因:PHP-FPM进程崩溃或未启动;Nginx/Apache与PHP-FPM通信失败。
解决:检查PHP-FPM进程状态(
systemctl status php-fpm),重启服务(systemctl restart php-fpm);确认监听地址(listen = 127.0.0.1:9000)与Web服务器配置一致。504 Gateway Timeout
原因:PHP脚本执行超时;PHP-FPM资源不足。
解决:调整
request_terminate_timeout(php-fpm.conf);增加pm.max_children(进程数)或优化脚本性能。空响应或空白页
原因:PHP错误未显示;脚本语法错误。
解决:启用
display_errors = On(php.ini);检查PHP日志(/var/log/php-fpm.log);验证脚本语法(php -l script.php)。“Primary script unknown”
原因:Nginx未正确传递脚本路径到PHP-FPM。
解决:确保Nginx配置包含
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;,且root指令路径正确。进程池耗尽(“pm.max_children” reached)
原因:并发请求超过进程限制。
解决:增加
pm.max_children(根据服务器内存调整);优化pm模式(如ondemand改为dynamic)。文件权限问题
原因:PHP-FPM用户无权访问脚本或目录。
解决:确保用户(如
www-data)拥有权限:chown -R www-data:www-data /var/www;检查listen.owner/group(php-fpm.conf)。内存耗尽(“Allowed memory exhausted”)
原因:脚本内存超出限制。
解决:增加
memory_limit(php.ini);优化代码减少内存使用。慢速脚本阻塞进程
原因:单个脚本执行时间过长,占用进程。
解决:设置
request_slowlog_timeout(php-fpm.conf)记录慢日志;优化数据库查询或外部请求。PHP-FPM无法启动
原因:配置错误;端口冲突。
解决:检查语法(
php-fpm -t);确认端口未被占用(netstat -tulnp | grep 9000)。日志文件过大
原因:未配置日志轮转。
解决:使用
logrotate配置日志切割;调整php-fpm.log级别(如log_level = notice)。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
本文来自《西里网 . 宝塔 | 西里网》 -- 发布时间:2025-03-29
本页链接:https://bt.ciilii.com/show/news-860.html
原创声明:本篇文章均为西里网原创,由《DeepSeek-R1 模型》自动生成。内容真实性仅供参考学习。
本作品采用 知识共享署名—非商业性使用—相同方式共享 4.0 国际许可协议 (CC BY-NC-SA 4.0) 进行许可。
