Apache-2.2
Apache 中的每個 VirtualHost 是否可以有 2 個錯誤日誌?
我有大約 10 個虛擬主機,我喜歡將 error_logs 分開。最近,我還需要將 error_logs 全部結合起來進行一些 mod_security 掃描。
如果我為測試 VirtualDomain 定義 2 個錯誤日誌,我注意到沒有記錄任何錯誤。很奇怪。
是否可以讓 CustomLog 扮演 ErrorLog 的角色?
還是我錯誤地定義了我的 2 個錯誤日誌?
<VirtualHost 1.2.3.4:80> ServerName mydomain.net ServerAlias www.mydomain.net mydomain.net DocumentRoot /var/www/html/mydomain ServerAdmin not@available.com UseCanonicalName Off ErrorLog logs/mydomain.net-error_log ErrorLog logs/unified_modsecurity-error_log CustomLog logs/mydomain.net-access_log combined UserDir disabled UserDir enabled mydomainuser </VirtualHost>
不,每個 VirtualHost 不可能有兩個 ErrorLog 指令。但是,您可以使用 Apache 管道到命令的能力,以便使用 UNIX ’tee’ 命令記錄到兩個(或更多)文件:
錯誤日誌“| /usr/bin/tee -a /var/log/apache/error-1.log /var/log/apache/error-2.log”
預設情況下,管道日誌程序是在不呼叫 shell 的情況下生成的。使用“|$”而不是“|” 使用 shell 生成(通常使用 /bin/sh -c):
這是 Apache 2.2 的預設行為。
例子:
# Write to files error-1.log and error-2.log, and echo to stdout CustomLog "|$/usr/bin/tee -a /var/log/apache/error-1.log /var/log/apache/error-2.log"
我遇到的另一個問題:
雙引號和小節之間不應有空格。
"|$ ...
已驗證。" |$ ...
不是。