在 Ubuntu 上 PHP 日志过大,通常可以从 定位日志、清理、限制大小、轮转、优化代码 几个方面解决。
常见位置:
# PHP-FPM 错误日志
/var/log/php*/fpm/error.log
/var/log/php-fpm.log
# Apache + PHP
/var/log/apache2/error.log
# Nginx + PHP-FPM
/var/log/nginx/error.log
# PHP 自身 error_log
php --ini
# 查看 error_log 配置
查看 php.ini:
php --ini
grep error_log /etc/php/*/*/php.ini
# 清空日志(不删文件)
sudo truncate -s 0 /var/log/php-fpm.log
# 或
sudo echo > /var/log/php*/fpm/error.log
⚠️ 不要直接 rm,否则服务可能写不了日志。
Ubuntu 默认有 logrotate,但 PHP 日志不一定配置好。
ls /etc/logrotate.d/ | grep php
sudo nano /etc/logrotate.d/php-fpm
示例:
/var/log/php*/fpm/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
postrotate
systemctl reload php-fpm > /dev/null 2>&1 || true
endscript
}
测试:
sudo logrotate -d /etc/logrotate.d/php-fpm
sudo logrotate -f /etc/logrotate.d/php-fpm
display_errors = Off
log_errors = On
error_reporting = E_ERROR | E_WARNING
sudo systemctl restart php-fpm
常见原因:
检查:
tail -n 100 /var/log/php-fpm.log
如果是重复错误:
# 查看大小
du -sh /var/log/*
# 直接清空(紧急)
sudo truncate -s 0 /var/log/php-fpm.log
如果你愿意,可以告诉我:
我可以给你精确配置。