Apache 访问日志或错误日志出现“空白”(完全没有内容,或只有旧内容不再更新)通常由以下几类原因造成,可按顺序排查:
检查 httpd.conf 或虚拟主机配置:
CustomLog /var/log/apache2/access.log combined
ErrorLog /var/log/apache2/error.log
✅ 验证:
apachectl -S
LogLevel crit
crit 以上才记录,普通错误不写✅ 建议:
LogLevel warn
Apache 运行用户(如 www-data、apache)无法写日志:
ls -l /var/log/apache2/
✅ 修复:
chown -R www-data:adm /var/log/apache2
chmod 644 /var/log/apache2/*.log
getenforce
✅ 查看拒绝:
ausearch -m avc -ts recent
✅ 修复:
restorecon -Rv /var/log/httpd
修改配置后未重载:
systemctl restart apache2
# 或
apachectl graceful
⚠️ 有时进程还在用旧日志文件(尤其是 logrotate 后)
现象:
✅ 解决:
logrotate -f /etc/logrotate.d/apache2
systemctl reload apache2
✅ 检查:
netstat -tlnp | grep apache
例如:
SetEnvIf Request_URI "\.jpg$" nolog
CustomLog access.log combined env=!nolog
✅ 检查是否有 env= 条件
mod_log_config 未加载event MPM 下日志缓冲未刷新✅ 检查:
apachectl -M | grep log
CustomLog如果你愿意,可以告诉我:
我可以帮你精准定位。