温馨提示×

centos php日志怎样过滤内容

小樊
34
2026-09-06 06:24:38
栏目: 编程语言

在 CentOS 上过滤 PHP 日志内容,常见做法取决于日志在哪里用什么方式查看。下面按常见场景给你说明。


一、先看 PHP 日志在哪里

1. 查看 php.ini 中日志配置

php --ini

grep -E "error_log|log_errors" /etc/php.ini

常见位置:

  • /var/log/php-fpm/error.log
  • /var/log/httpd/error_log
  • /var/log/nginx/error.log
  • 应用自定义的 php_error.log

二、用命令行过滤日志(最常用)

1. 按关键字过滤(grep)

grep "PHP Fatal error" /var/log/php-fpm/error.log

多个关键字:

grep -E "Fatal|Warning|Notice" /var/log/php-fpm/error.log

忽略大小写:

grep -i "error" /var/log/php-fpm/error.log

2. 排除某些内容

grep -v "Deprecated" /var/log/php-fpm/error.log

排除多个:

grep -vE "Deprecated|Notice" /var/log/php-fpm/error.log

3. 实时过滤日志(tail + grep)

tail -f /var/log/php-fpm/error.log | grep "PHP"

只看错误:

tail -f /var/log/php-fpm/error.log | grep "PHP Fatal error"

4. 按时间过滤

如果日志带时间(一般都有):

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

三、按 PHP 错误类型过滤

PHP 常见错误类型:

  • PHP Fatal error
  • PHP Warning
  • PHP Notice
  • PHP Parse error
  • PHP Deprecated

示例:

grep "PHP Warning" /var/log/php-fpm/error.log

只看 Fatal:

grep "PHP Fatal error" /var/log/php-fpm/error.log

四、用 awk 做高级过滤

1. 只看某字段

awk '/PHP Fatal error/ {print}' /var/log/php-fpm/error.log

2. 统计错误数量

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

五、Web 服务日志中的 PHP 错误

Apache

grep "PHP" /var/log/httpd/error_log

Nginx + php-fpm

grep "PHP" /var/log/nginx/error.log

六、日志级别控制(从源头减少)

php.ini 中:

error_reporting = E_ALL & ~E_DEPRECATED & ~E_NOTICE
log_errors = On
error_log = /var/log/php/php_error.log

修改后重启:

systemctl restart php-fpm

七、推荐组合用法(实战)

实时看 PHP 致命错误:

tail -f /var/log/php-fpm/error.log | grep "PHP Fatal error"

排查某接口问题:

grep "api/login" /var/log/php-fpm/error.log

如果你能告诉我:

  • PHP 版本
  • Web 服务(Apache / Nginx)
  • 日志具体路径

我可以给你更精确的过滤命令。

0