温馨提示×

PHP-FPM在Linux下的错误日志怎么查

小樊
32
2025-12-24 03:38:42
栏目: 编程语言

Linux下查看 PHP-FPM 错误日志的实用步骤

一、快速定位日志路径

  • 查看 PHP-FPM 进程日志配置
    • 主配置:/etc/php-fpm.conf
    • 进程池配置:/etc/php/{版本号}/fpm/pool.d/www.conf
    • 关键指令:error_log(错误日志路径)、access.log(访问日志,可选)、slowlog(慢日志,可选)、log_level(日志级别)
  • 发行版常见路径
    • Ubuntu/Debian:/var/log/php-fpm/error.log/var/log/php-fpm/access.log
    • CentOS/RHEL:/var/log/php-fpm/error.log/var/log/php7.x-fpm.log
    • 其他可能:/var/log/php7-fpm/error.log
  • 若未配置 error_log,部分环境会把错误打到系统日志(如 /var/log/syslog),或 Web 服务器错误日志(如 /var/log/nginx/error.log/var/log/apache2/error.log)。

二、常用查看与检索命令

  • 实时查看错误日志
    • tail -f /var/log/php-fpm/error.log
  • 查看最近 N 行
    • tail -n 200 /var/log/php-fpm/error.log
  • 过滤关键字(如“error”“WARNING”“segfault”)
    • grep -i “error” /var/log/php-fpm/error.log
  • 按时间窗口检索(示例:2025-12-24)
    • grep “2025-12-24” /var/log/php-fpm/error.log
  • 同时跟踪访问日志与错误日志
    • tail -f /var/log/php-fpm/*.log
  • 若使用 systemd 管理
    • 查看服务日志:journalctl -u php-fpm -n 50 --no-pager
  • 若错误可能进入系统日志
    • grep -i “php-fpm” /var/log/syslog
  • 注意:多数日志需要 sudo 权限读取。

三、启动失败或未写入日志时的排查

  • 验证配置语法
    • php-fpm -t 或 php{版本号}-fpm -t
  • 查看服务状态与最近日志
    • systemctl status php-fpm
    • journalctl -u php-fpm -n 50 --no-pager
  • 检查端口或 Socket 占用
    • netstat -tulnp | grep 9000
    • ls -l /run/php/php{版本号}-fpm.sock
  • 检查目录与权限(日志、运行时目录)
    • 示例:mkdir -p /run/php-fpm && chown -R www-data:www-data /run/php-fpm && chmod 755 /run/php-fpm
    • 日志目录:chown -R www-data:www-data /var/log/php-fpm/
  • 重启服务
    • systemctl restart php-fpm 或 service php{版本号}-fpm restart。

四、补充定位技巧

  • php.ini 中确认 PHP 自身的错误日志指令:error_reportinglog_errorserror_log(注意这与 PHP-FPM 的 error_log 不同,前者记录 PHP 解析/执行错误,后者记录 FPM 进程与管理事件)。
  • 使用 phpinfo() 查看实际生效的 error_log 路径与配置(临时创建一个 phpinfo.php 文件访问即可)。
  • 开启并检索慢日志(若已配置):tail -f /var/log/php-fpm/slow.log,定位执行时间过长的脚本。

0