apache 错误和访问日志丢失,可能是什么原因以及如何重新创建它们?

Ita*_*not 4 httpd log-files apache-2.2

我接到了一项任务,要了解为什么 2 个运行 apache 2.2.3 的 CentOS Web 服务器在特定情况下会遇到非常高的负载。我检查的第一件事是/var/log/messages但后来我意识到 rsyslog 由于某种原因被关闭,所以我启动它并使用chkconfig. 然后,我想检查 apache 错误和访问日志,所以我浏览到/var/log/httpd但发现该文件夹为空。我检查/etc/httpd/conf/httpd.conf并看到了这些行:

ErrorLog logs/error_log
CustomLog logs/access_log combined
Run Code Online (Sandbox Code Playgroud)

据我所知,它指的是/var/log/httpd/但如前所述文件夹为空。在写这个问题时,我在服务器上寻找 httpd 版本并运行httpd -v,这就是我得到的响应:

[root@domU-IP httpd]# httpd -v
Server version: Apache/2.2.3
Server built:   May  4 2011 06:51:15
Unable to open logs
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  1. 什么可能导致日志消失?(有可能它们一开始就没有被创造出来)
  2. 如何重新创建日志并确保将数据写入其中?
  3. 应该设置哪些权限/var/log/httpd?当前权限为:drwx------ 2 root root

提前致谢

HBr*_*ijn 5

当 Apache 配置中的路径引用不是绝对的(即不以 开头/)时,它们是相对于ServerRoot指令中设置的目录。的常见默认设置ServerRoot/etc/httpd创建/etc/httpd/logs日志目录。

大多数打包的 Apache 版本都会创建一个从/etc/httpd/logs到的符号链接/var/log/httpd。/etc/httpd 中的实际目录丢失(或根文件系统已满)或符号链接可能在您的设置中丢失。

Apache 由 root 启动并在删除权限之前以 root 身份打开日志文件,因此 /var/log/httpd 上的目录权限似乎是正确的。