“Apache 日志在 Ubuntu 上为何报错”这个问题比较宽泛,我先给你常见原因分类 + 排查方法,你可以对照看是哪一种。
Apache 默认用户是 www-data
典型报错:
Permission denied: [client ...] AH00035
原因:
www-data 无写权限解决:
sudo ls -ld /var/log/apache2
sudo chown -R www-data:adm /var/log/apache2
sudo chmod -R 750 /var/log/apache2
典型报错:
AH00526: Syntax error
Could not open error log file
原因:
ErrorLog / CustomLog 指向了不存在目录检查:
sudo apache2ctl configtest
现象:
检查:
df -h
du -sh /var/log/apache2
清理:
sudo journalctl --vacuum-time=7d
sudo rm -f /var/log/apache2/*.log.old
Ubuntu 默认会用 logrotate
可能问题:
File descriptor X leaked解决:
sudo logrotate -d /etc/logrotate.d/apache2
sudo systemctl reload apache2
典型现象:
检查:
sudo aa-status
临时测试:
sudo systemctl stop apparmor
典型报错:
AH00558: Could not reliably determine server's fully qualified domain name
虽然不是直接日志错误,但常一起出现。
解决:
echo "ServerName localhost" | sudo tee /etc/apache2/conf-available/servername.conf
sudo a2enconf servername
sudo systemctl restart apache2
# 1. 看报错
sudo tail -n 50 /var/log/apache2/error.log
# 2. 检查配置
sudo apache2ctl configtest
# 3. 看权限
ls -ld /var/log/apache2
# 4. 看磁盘
df -h
你可以贴出:
sudo tail -n 30 /var/log/apache2/error.log
sudo apache2ctl configtest
我可以精准告诉你是哪一行配置或权限的问题。