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
)。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。