在 CentOS 上清理 PHP 日志文件,通常取决于你使用的 PHP 运行方式(PHP-FPM / Apache + mod_php) 以及 日志存储位置。下面按常见场景给你一份完整操作指南。
php-fpm -i | grep "error_log"
或查看配置文件:
grep -R "error_log" /etc/php-fpm.d/
grep -R "error_log" /etc/php.ini
常见路径:
/var/log/php-fpm/error.log
/var/log/php-fpm/www-error.log
grep -R "error_log" /etc/httpd/conf.d/
grep -R "error_log" /etc/httpd/conf/httpd.conf
常见路径:
/var/log/httpd/error_log
grep -R "error_log" /etc/nginx/
常见路径:
/var/log/nginx/error.log
/var/log/php-fpm/www-error.log
> /var/log/php-fpm/error.log
或
truncate -s 0 /var/log/php-fpm/error.log
⚠️ 不要直接 rm 日志文件,否则 PHP/服务可能继续写入已删除的 inode,日志仍占磁盘。
find /var/log/php-fpm -name "*.log" -mtime +30 -exec rm -f {} \;
systemctl restart php-fpm
systemctl restart httpd
systemctl restart nginx
vi /etc/php.ini
log_errors = On
error_log = /var/log/php/error.log
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
⚠️ 不建议长期记录 E_ALL
编辑轮转配置:
vi /etc/logrotate.d/php-fpm
示例:
/var/log/php-fpm/*.log {
daily
rotate 7
missingok
notifempty
compress
delaycompress
sharedscripts
postrotate
systemctl reload php-fpm > /dev/null 2>&1 || true
endscript
}
测试:
logrotate -d /etc/logrotate.d/php-fpm
# 清空 PHP-FPM 错误日志
> /var/log/php-fpm/error.log
# 清空 Nginx 错误日志
> /var/log/nginx/error.log
# 查看磁盘占用
df -h
du -sh /var/log/*
lsof | grep deleted
重启占用日志的服务即可。
php -i | grep error_log
或
journalctl -u php-fpm
如果你愿意,可以把以下信息发我,我可以给你精确路径和命令:
我可以直接帮你定制清理方案 ✅