Linux下查看PHP-FPM错误日志的方法
PHP-FPM的错误日志默认存储在/var/log/php-fpm/目录下,常见文件名为error.log(部分系统可能使用php7.x-fpm.log,其中x为PHP主版本号,如php7.4-fpm.log)。若不确定具体路径,可通过以下两种方式确认:
/etc/php-fpm.conf)或池配置文件(/etc/php-fpm.d/www.conf),搜索error_log指令,其后的路径即为日志文件位置。例如:sudo nano /etc/php-fpm.d/www.conf
# 查找类似 "error_log = /var/log/php-fpm/error.log" 的行
systemctl status php-fpm
找到日志文件后,可使用以下命令查看内容:
查看完整日志:
sudo cat /var/log/php-fpm/error.log
(需用sudo获取管理员权限,避免“Permission denied”错误)
实时监控新增日志(适用于排查实时问题,如502错误):
sudo tail -f /var/log/php-fpm/error.log
按Ctrl+C退出实时监控。
分页查看日志(适合日志文件较大的情况):
sudo less /var/log/php-fpm/error.log
使用方向键滚动,按q退出。
搜索特定关键词(如“fatal error”“warning”):
sudo grep 'fatal error' /var/log/php-fpm/error.log
可快速定位关键错误信息。
若默认日志不够详细,可通过修改PHP-FPM配置提升日志实用性:
www.conf中设置log_level,可选值为alert(最高级别,仅记录严重错误)、error(默认,记录错误信息)、warning(警告信息)、notice(普通通知)、debug(调试信息,最详细)。例如:log_level = notice
catch_workers_output = yes,将PHP子进程的输出(如脚本错误)记录到错误日志中,便于排查代码问题:catch_workers_output = yes
修改配置后,需重启PHP-FPM服务使更改生效:
sudo systemctl restart php-fpm
sudo tail -f /var/log/php-fpm/error.log
sudo grep -i 'fatal error' /var/log/php-fpm/error.log
user/group指令,默认多为www-data)对日志文件及目录的权限:sudo chown -R www-data:www-data /var/log/php-fpm/
sudo chmod -R 755 /var/log/php-fpm/