在 CentOS 上 PHP 日志突然增多,通常不是单一原因,而是以下几类常见问题导致的。你可以按这个思路排查:
如果 php.ini 中:
error_reporting = E_ALL
display_errors = On
log_errors = On
哪怕是一个 Notice / Warning 也会被记录。
表现:
Notice、Deprecated解决:
error_reporting = E_ERROR | E_WARNING | E_PARSE
log_errors = On
display_errors = Off
然后重启 PHP:
systemctl restart php-fpm
如果你用的是 PHP-FPM,以下日志很容易“爆”:
access.log = /var/log/php-fpm/access.log
每一次请求都记一行。
request_slowlog_timeout = 5s
slowlog = /var/log/php-fpm/slow.log
只要有慢请求就会写。
解决:
常见情况:
表现:
排查:
tail -f /var/log/php-fpm/error.log
看错误是否重复。
CentOS 服务器常见:
表现:
排查:
netstat -an | grep :80
tail -n 1000 access_log | awk '{print $1}' | sort | uniq -c | sort -nr
如果:
/etc/logrotate.d/php-fpm 配置错误日志不会自动切割,看起来“越来越多”。
检查:
logrotate -d /etc/logrotate.d/php-fpm
很多人在 cron 里跑 PHP:
* * * * * php /path/script.php
脚本一报错,日志就疯涨。
如果你愿意,可以把 一段 php 日志内容 或 php-fpm 配置 发出来,我可以直接帮你判断是哪一种原因。