Php

讓 PHP FastCGI 程序寫入特定的錯誤日誌?

  • August 19, 2010

我有一台執行 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"

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