Php
讓 PHP FastCGI 程序寫入特定的錯誤日誌?
我有一台執行 Lighttpd 的伺服器,其中包含三個使用者的服務域。每個使用者都有自己的 PHP FastCGI 程序,用於在其所有域中提供 PHP 內容。Lighttpd 允許我將每個域的訪問日誌文件寫入唯一的日誌文件。我還想將 PHP 錯誤寫入三個不同的日誌文件(每個使用者一個)。
每個 PHP 程序都在讀取自己的 php.ini(這已通過查看
phpinfo()
輸出驗證)。每個 php.ini 都指定了它應該寫入的日誌文件。例如:error_reporting = E_ALL & ~E_NOTICE display_errors = 0 log_errors = 1 html_errors = 0 fastcgi.logging = 1 error_log = /var/www/vhosts/example.com/logs/php_errors.log
如果我設置
fastcgi.logging = 1
了 PHP 錯誤,對於所有三個使用者,總是轉到 Lighttpd 的錯誤日誌。如果我設置fastcgi.logging = 0
然後 PHP 錯誤被寫入系統 STDERR。在這種情況下,我可以將每個 FastCGI 程序的 STDERR 重定向到我喜歡的任何文件,但我會失去錯誤的時間戳(這不太理想)。那麼,如何通過 Lighttpd 為我的 PHP FastCGI 程序啟用正確的錯誤日誌記錄?
Lighttps 僅支持一個錯誤日誌。但它可以是一個程序!
因此,請嘗試登錄到您自己的腳本,該腳本會根據您自己的標準拆分錯誤日誌。語法是:
server.errorlog = "|/path/to/script"