在 CentOS 上 Apache(httpd)日志为空,通常由以下几类原因导致,你可以按顺序排查:
systemctl status httpd
如果不是 active (running),先启动:
systemctl start httpd
验证:
curl -I http://localhost
grep -R "CustomLog\|ErrorLog" /etc/httpd/
常见路径:
/var/log/httpd/access_log/var/log/httpd/error_log<VirtualHost *:80>
CustomLog /var/log/httpd/site_access.log combined
</VirtualHost>
你可能在看错日志文件。
LogLevel warn
一般不会导致 access_log 为空,但 error_log 可能没内容。
例如:
CustomLog logs/access_log common env=!dontlog
某些条件下不记录。
getenforce
如果是 Enforcing,可能 Apache 无权限写日志。
grep httpd /var/log/audit/audit.log
setenforce 0
再访问一次,看日志是否出现。
ls -li /var/log/httpd/
如果 httpd 仍写旧 inode,但你看的是新文件。
解决:
systemctl restart httpd
某些 CentOS + Apache 环境:
journalctl查看:
journalctl -u httpd
ls -ld /var/log/httpd
应属于 root:root 或 apache
df -h
systemctl status httpd
curl http://localhost
ls -l /var/log/httpd/
grep CustomLog /etc/httpd/conf/httpd.conf
getenforce
journalctl -u httpd
如果你愿意,可以把下面信息贴出来,我可以直接帮你定位:
httpd -vcat /etc/httpd/conf/httpd.conf | grep -i logsystemctl status httpd 输出