在 CentOS 上过滤 PHP 日志内容,常见做法取决于日志在哪里、用什么方式查看。下面按常见场景给你说明。
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.logphp_error.loggrep "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
grep -v "Deprecated" /var/log/php-fpm/error.log
排除多个:
grep -vE "Deprecated|Notice" /var/log/php-fpm/error.log
tail -f /var/log/php-fpm/error.log | grep "PHP"
只看错误:
tail -f /var/log/php-fpm/error.log | grep "PHP Fatal error"
如果日志带时间(一般都有):
grep "2026-01-21 10:" /var/log/php-fpm/error.log
PHP 常见错误类型:
PHP Fatal errorPHP WarningPHP NoticePHP Parse errorPHP Deprecated示例:
grep "PHP Warning" /var/log/php-fpm/error.log
只看 Fatal:
grep "PHP Fatal error" /var/log/php-fpm/error.log
awk '/PHP Fatal error/ {print}' /var/log/php-fpm/error.log
grep "PHP Fatal error" /var/log/php-fpm/error.log | wc -l
grep "PHP" /var/log/httpd/error_log
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
如果你能告诉我:
我可以给你更精确的过滤命令。