Apache-2.2

apache 錯誤和訪問日誌失去,可能是什麼原因以及如何重新創建它們?

  • August 13, 2019

我的任務是了解為什麼 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

據我所知,它指的是/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

我的問題是:

  1. 什麼可能導致日誌消失?(有可能它們一開始就沒有被創造出來)
  2. 如何重新創建日誌並確保將數據寫入其中?
  3. 應該設置哪些權限/var/log/httpd?目前的權限是:drwx------ 2 root root

提前致謝

當 Apache 配置中的路徑引用不是絕對的(即不以 開頭/)時,它們相對於ServerRoot指令中設置的目錄。一個常見的預設設置ServerRoot/etc/httpd創建/etc/httpd/logs您的日誌目錄。

大多數打包的 Apache 版本都會創建一個從/etc/httpd/logs到的符號連結/var/log/httpd。/etc/httpd 中的實際目錄失去(或根文件系統已滿)或您的設置中可能缺少符號連結。

Apache 由 root 啟動,並在刪除權限之前以 root 身份打開日誌文件,因此 /var/log/httpd 上的目錄權限似乎是正確的。

引用自:https://serverfault.com/questions/610620