linux

Linux PHP-FPM错误日志怎么查

小樊
46
2025-10-18 08:13:51
栏目: 编程语言

Linux下查看PHP-FPM错误日志的方法

一、定位PHP-FPM错误日志文件位置

PHP-FPM的错误日志默认存储在/var/log/php-fpm/目录下,常见文件名为error.log(部分系统可能使用php7.x-fpm.log,其中x为PHP主版本号,如php7.4-fpm.log)。若不确定具体路径,可通过以下两种方式确认:

  1. 检查配置文件:打开PHP-FPM的主配置文件(/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" 的行
    
  2. 结合系统服务推测:若使用systemd管理PHP-FPM,可通过服务描述查看日志关联路径(部分系统会自动记录):
    systemctl status php-fpm
    

二、常用日志查看命令

找到日志文件后,可使用以下命令查看内容:

  1. 查看完整日志

    sudo cat /var/log/php-fpm/error.log
    

    (需用sudo获取管理员权限,避免“Permission denied”错误)

  2. 实时监控新增日志(适用于排查实时问题,如502错误):

    sudo tail -f /var/log/php-fpm/error.log
    

    Ctrl+C退出实时监控。

  3. 分页查看日志(适合日志文件较大的情况):

    sudo less /var/log/php-fpm/error.log
    

    使用方向键滚动,按q退出。

  4. 搜索特定关键词(如“fatal error”“warning”):

    sudo grep 'fatal error' /var/log/php-fpm/error.log
    

    可快速定位关键错误信息。

三、优化日志查看的配置建议

若默认日志不够详细,可通过修改PHP-FPM配置提升日志实用性:

  1. 调整日志级别:在www.conf中设置log_level,可选值为alert(最高级别,仅记录严重错误)、error(默认,记录错误信息)、warning(警告信息)、notice(普通通知)、debug(调试信息,最详细)。例如:
    log_level = notice
    
  2. 捕获子进程输出:设置catch_workers_output = yes,将PHP子进程的输出(如脚本错误)记录到错误日志中,便于排查代码问题:
    catch_workers_output = yes
    

修改配置后,需重启PHP-FPM服务使更改生效:

sudo systemctl restart php-fpm

四、常见问题排查场景

  1. 502 Bad Gateway错误:通常因PHP-FPM服务未运行或Nginx/Apache无法连接到PHP-FPM。可通过查看PHP-FPM错误日志确认是否启动失败(如端口冲突、权限问题):
    sudo tail -f /var/log/php-fpm/error.log
    
  2. PHP代码错误:若应用出现500错误,可通过搜索日志中的“PHP Fatal error”“Uncaught Exception”等关键词定位具体代码问题:
    sudo grep -i 'fatal error' /var/log/php-fpm/error.log
    
  3. 权限问题:若日志中出现“Permission denied”,需检查PHP-FPM进程用户(user/group指令,默认多为www-data)对日志文件及目录的权限:
    sudo chown -R www-data:www-data /var/log/php-fpm/
    sudo chmod -R 755 /var/log/php-fpm/
    

0
看了该问题的人还看了