在 CentOS 上,PHP 日志变大的原因通常可以归纳为以下几类。你可以对照排查:
如果代码中存在大量:
Notice / Warning / Deprecated而 php.ini 中设置了:
log_errors = On
error_reporting = E_ALL
就会导致日志迅速增长。
检查:
grep -E "PHP Notice|PHP Warning|PHP Deprecated" /var/log/php-fpm/error.log
CentOS 常见 PHP 是通过 php-fpm 运行的:
; /etc/php-fpm.conf 或 /etc/php-fpm.d/www.conf
catch_workers_output = yes
如果开启,PHP 脚本的 echo、var_dump 也会写入日志。
CentOS 默认使用 logrotate,但如果:
就会导致日志无限增长。
检查:
ls -lh /var/log/php*
cat /etc/logrotate.d/php-fpm
都会让错误日志暴涨。
很多框架(Laravel / ThinkPHP / Yii)会写:
storage/logsruntime/log这些不是 php.ini 日志,但也常被误认为是“PHP 日志”。
脚本:
也会瞬间撑大日志。
# 查看日志大小
du -sh /var/log/php*
# 查看最近日志
tail -n 100 /var/log/php-fpm/error.log
# 统计错误类型
awk '{print $1,$2,$3}' /var/log/php-fpm/error.log | sort | uniq -c | sort -nr
如果你愿意,可以告诉我:
我可以帮你精准定位是哪一类原因。