如何通过查看Ubuntu系统php-fpm的错误日志,高效排查网站运行中的具体问题?
- 内容介绍
- 文章标签
- 相关推荐
为什么需要查看 PHP‑FPM 错误日志?
说到痛点,网站偶尔出现 502 Bad Gateway**、页面空白或响应极慢。却找不到具体原因,导致排查耗时且影响使用者体验。
一、确认 PHP‑FPM 服务状态
先检查服务是否正常运行,避免因服务未启动而误判为代码问题。说起来,
sudo systemctl status php-fpm
# 或根据实际版本:
sudo systemctl status php7.4-fpm
说到常见痛点。服务频繁重启或处于 failed 状态,此时需关注启动日志。
- 默认方法:/var/log/php-fpm.log 或 /var/log/php{version}-fpm.log
- 若已自定义,可在池配置中查看 error_log指令。
输出示例:error_log = /var/log/php7.4-fpm.log
`
`
`
`
`
`
`
`
`
sudo tail -f /var/log/php7.4-fpm.log #实时跟踪新增内容
sudo grep -i error /var/log/php7.4-fpm.log | tail -n 30 #过滤错误行并取最近30条
<|tool_call_begin|>`
- **权限不足**:日志提示 `Cannot open script: Permission denied` → 检查 `www-data` 对网站目录的读取权限。按理说,
- **内存耗尽**:`Allowed memory size exhausted of XXXX bytes` → 调整 `php.ini` 中的 `memory_limit` 或 FPM 的 ` pm.max_children `。
- **代码语法错误**:`Parse error: syntax error,unexpected …in ,on line …` → 定位并修改对应 PHP 文件。
- **连接超时 / 502**:`upstream timed out while reading response header from upstream` → 检查 Nginx/Apache 的 `fastcgi_read_timeout`、`proxy_read_timeout`还有 FPM 的 `request_terminate_timeout`.`
<|toolcallbegin|>
- **权限不足**:日志提示Cannot open script: Permission denied→ 检查www-data对网站目录的读取权限。
- **内存耗尽**:Allowed memory size exhausted of XXXX bytes→ 调整php.ini中的memorylimit或 FPM 的 pm.maxchildren 。
- **代码语法错误**:Parse error: syntax error,unexpected …in ,on line …`
xml---|toolcallssectionbegin|>-
- 权限不足日志提示 Cannot open script: Permission denied → 检 www-data 对网站目录的读取权限。怎么说呢,- 内存耗尽Allowed memory size exhausted of XXXX bytes → 调整 php.ini 中的 memorylimit 或 FPM 的 pm.max_children。
- 代码语法错误Parse error: syntax error,unexpected …in ,on line …---|tool_calls_section_end|>xml---?其实,xml version="1.0" encoding="UTF-8"?--->,?,?
---?xml version="1.0" encoding="UTF-8"?--->,?,?---,xml version="1.0" encoding="UTF-8"?--->,?,?---,xml version="1.0" encoding="UTF-8"?--->,?,?---,xml version="1.0" encoding="UTF-8"?--->,?,?

json{
说到"text",""
}
json{
再看"text",""
}'''{\"text\": \"\"}'''{\"output\": \"\"}'''
{\"text\": \"\"}
{\"output\": \"\"}
{\"output\": \"\"}
{\"output\": \"\"}
{\"output\": \"\"}
{\"text\": \"\"}
{\"output\": \"\"}
{\"output\": \"\"}{\"output\": \"\"}{\"output\": \"\"}{\"output\": \"\"}{\"output\": \"\"}{\"output\": \"\"}{\"output\": \",?,?
---?xml version="1.0" encoding="UTF-8"?--->,?,?---,xml version="1.0" encoding="UTF-8"?--->,?,?---,xml version="1.0" encoding="UTF-8"?--->,?,?---,xml version="1.0" encoding="UTF-8"?--->,?,?
json{
说到"text",""
}
json{
再看"text",""
}'''{\"text\": \"\"}'''{\"output\": \"\"}'''
{\"text\": \"\"}
{\"output\": \"\"}
{\"output\": \"\"}
{\"output\": \"\"}
{\"output\": \"\"}
{\"text\": \"\"}
{\"output\": \"\"}
{\"output\": \"\"}{\"output\": \"\"}{\"output\": \"\"}{\"output\": \"\"}{\"output\": \"\"}{\"output\": \"\"}{\"output\": \"

