在 Ubuntu 上,PHP 日志变大的原因通常可以归结为以下几类。你可以对照排查:
php.ini 中:
error_reporting = E_ALL
display_errors = Off
log_errors = On
如果程序有:
日志会迅速增长。
✅ 建议:
error_reporting = E_ERROR | E_WARNING | E_PARSE
APP_DEBUG=true)Ubuntu 通常使用 logrotate 管理日志。
ls -lh /var/log/php*
cat /etc/logrotate.d/php
常见问题:
copytruncate 未使用,导致 PHP 仍写旧文件✅ 示例 logrotate 配置:
/var/log/php/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
copytruncate
}
; www.conf
catch_workers_output = yes
php_admin_value[error_log] = /var/log/php-fpm.log
如果开启 catch_workers_output,所有 stdout/stderr 都会进日志,极易变大。
✅ 建议:
catch_workers_output = no
可用:
tail -f /var/log/php/error.log
看是否是重复错误。
代码中:
file_put_contents('/var/log/app.log', $data, FILE_APPEND);
# 1. 看日志大小
du -sh /var/log/php*
# 2. 看最近日志
tail -n 100 /var/log/php/error.log
# 3. 看 PHP 配置
php --ini
php -i | grep error_log
# 4. 看 logrotate
logrotate -d /etc/logrotate.d/php
如果你愿意,可以贴出:
php.ini 相关配置我可以帮你精准定位是哪一种原因。