PHP-FPM的错误日志路径取决于系统配置和PHP版本,常见位置包括:
/var/log/php-fpm.log(Ubuntu通用路径)或 /var/log/php7.x-fpm.log(7.x替换为实际PHP版本,如php8.2-fpm.log);/var/log/php-fpm/error.log;/etc/php/{version}/fpm/pool.d/www.conf)中的 error_log 参数,可获取准确日志路径(如 error_log = /var/log/php-fpm/error.log)。使用tail -f命令实时监控日志文件的最新内容(适用于排查正在发生的错误):
sudo tail -f /var/log/php-fpm.log # 默认路径
sudo tail -f /var/log/php-fpm/error.log # 专用错误日志路径
若日志路径包含版本号(如php8.2-fpm.log),需替换为实际版本。
若需查看完整的日志记录(而非实时更新),可使用以下命令:
sudo cat /var/log/php-fpm.log # 查看全部内容
sudo less /var/log/php-fpm.log # 分页查看(按q退出)
sudo grep "error" /var/log/php-fpm.log # 过滤出错误信息(更精准)
grep命令可快速定位关键错误(如error、warning、fatal等关键词)。
若PHP-FPM由systemd管理(Ubuntu默认方式),可通过journalctl查看与PHP-FPM相关的系统日志:
sudo journalctl -xe | grep php-fpm # 实时过滤PHP-FPM错误
sudo journalctl -u php7.x-fpm -f # 实时查看指定PHP版本的日志(替换版本号)
此方法适用于日志文件路径不明确或需要整合系统日志的场景。
若默认日志信息不足,可修改PHP-FPM配置以提高日志级别:
/etc/php/{version}/fpm/pool.d/www.conf),添加或修改以下参数:catch_workers_output = yes # 捕获worker进程输出
php_admin_value[error_log] = /var/log/php-fpm/custom_error.log # 自定义日志路径
php_admin_flag[log_errors] = on # 开启错误日志
php_admin_value[error_reporting] = E_ALL & ~E_NOTICE & ~E_STRICT # 记录所有错误(除提示和严格模式)
sudo systemctl restart php7.x-fpm # 替换为实际版本
修改后,错误信息将记录到custom_error.log中,便于更详细的分析。
通过以上步骤,可全面查看并分析Ubuntu系统中PHP-FPM的错误日志,快速定位问题根源(如配置错误、权限问题、代码异常等)。