温馨提示×

ubuntu php日志怎么分析

小樊
38
2026-09-12 09:38:32
栏目: 编程语言

在 Ubuntu 上分析 PHP 日志,通常分为 找到日志位置 → 查看日志内容 → 定位问题 → 借助工具分析 几个步骤。下面按实战方式来说明。


一、PHP 日志在哪里?

1. PHP 错误日志(最常见)

先看 php.ini 配置:

php --ini

找到 php.ini,搜索:

log_errors = On
error_log = /var/log/php/php_errors.log

常见路径:

  • /var/log/php/php_errors.log
  • /var/log/apache2/error.log(Apache)
  • /var/log/nginx/error.log(Nginx + php-fpm)

2. Web 服务器日志

  • Apache:
    tail -f /var/log/apache2/error.log
    
  • Nginx:
    tail -f /var/log/nginx/error.log
    

3. PHP-FPM 日志

/var/log/php{version}-fpm.log

例如:

/var/log/php8.1-fpm.log

二、实时查看日志(最常用)

tail -f /var/log/php/php_errors.log

或同时看多个日志:

tail -f /var/log/nginx/error.log /var/log/php8.1-fpm.log

三、常见 PHP 错误类型分析

1. Fatal Error

PHP Fatal error:  Uncaught Error: Call to undefined function xxx()

✅ 函数未定义 / 文件未引入

2. Warning

PHP Warning:  include(): Failed opening 'xxx.php'

✅ 路径错误、权限问题

3. Notice

PHP Notice:  Undefined index: user

✅ 数组未判断直接访问(通常不影响运行)

4. 内存溢出

PHP Fatal error:  Allowed memory size exhausted

✅ 调整:

memory_limit = 256M

四、按关键字分析日志

统计错误出现次数

grep "PHP Fatal error" /var/log/php/php_errors.log | wc -l

查看某时间段日志

grep "2026-01-21 10:" /var/log/php/php_errors.log

提取某类错误

grep -i "mysql\|pdo\|sql" /var/log/php/php_errors.log

五、日志分析工具(进阶)

1. 基础工具

  • less
  • grep
  • awk
  • sort | uniq -c

2. 可视化 / 聚合

  • GoAccess(Nginx/Apache)
  • Logrotate(避免日志爆炸)
  • ELK / Grafana Loki(生产环境)

六、生产环境建议配置

log_errors = On
error_log = /var/log/php/php_errors.log
display_errors = Off

并设置权限:

sudo chown www-data:adm /var/log/php

七、常见排查思路(实战)

  1. 页面空白 → 看 PHP error log
  2. 500 错误 → Nginx/Apache + PHP-FPM
  3. 接口慢 → PHP-FPM + slow log
  4. 线上问题 → 关闭 display_errors,开启日志

如果你愿意,可以:

  • 贴一段 PHP 日志内容
  • 或说明是 Apache / Nginx / CLI
  • 或直接说“我想查某类错误”

我可以帮你 逐行分析日志

0