你这个问题表述比较简略,我先把几种最常见的“Apache 在 CentOS 上不记录日志”的原因列出来,你对照看一下是哪一种情况。
在 CentOS / RHEL 上,Apache 通常是 httpd,日志位置可能和你以为的不一样:
# 默认位置
/var/log/httpd/access_log
/var/log/httpd/error_log
而 Ubuntu/Debian 是:
/var/log/apache2/access.log
✅ 检查方式:
ls -l /var/log/httpd/
检查 httpd 配置:
grep -R "CustomLog" /etc/httpd/
grep -R "ErrorLog" /etc/httpd/
如果看到:
CustomLog off
或虚拟主机里没有 CustomLog,那就不会记录。
CentOS 默认开启 SELinux,如果日志目录权限或上下文不对,Apache 会静默失败。
检查:
getenforce
如果是 Enforcing,看日志:
tail /var/log/audit/audit.log | grep httpd
✅ 解决示例:
restorecon -Rv /var/log/httpd
ls -l /var/log/httpd
应类似:
-rw-r--r-- 1 root root ... access_log
Apache 运行用户通常是 apache:
ps aux | grep httpd
如果目录不可写,就不会记录。
例如:
验证:
curl http://localhost
再看日志是否增加。
LogLevel warn
错误日志不会记录 info 级别内容。
某些 CentOS 云镜像 / Docker 中:
docker logs 容器名
# 1. 看进程
ps aux | grep httpd
# 2. 看配置
httpd -S
# 3. 看日志
tail -f /var/log/httpd/access_log
tail -f /var/log/httpd/error_log
# 4. 看 SELinux
getenforce
如果你愿意,可以把以下信息发我,我能直接定位:
我可以帮你逐行看配置。