Apache-2.2

將 PHP (fcgid) 請求與靜態分開記錄

  • February 14, 2012

對於通過 mod_fcgid 執行 Apache 和 PHP 的伺服器,我想將 PHP 處理的所有請求記錄到一個單獨的文件中,以便我可以更好地了解哪些請求是通過 PHP 而不是直接通過文件系統處理。

這是一個在 .htaccess(帶有W3 Total Cache的 Wordpress )中有一些非常複雜的重寫規則的站點,它通過 mod_rewrite 將記憶體的 PHP 請求轉換為靜態文件請求,因此記憶體的請求甚至不會觸及 PHP 子系統。

因此,我想確保我所做的任何日誌自定義都不會被 mod_rewrite 魔法所拋棄。例如,僅僅因為請求 URI 以 .php 結尾,並不意味著該請求最終將由 PHP 處理。我需要根據應用所有重寫規則後發生的任何情況來鍵入。

似乎最直接和最簡單的方法就是在每個 PHP 頁面中包含日誌程式碼,可能在最後呼叫 flush() 發送頁面輸出,寫入日誌文件,或者如果設置鎖定並從那裡寫入文件太昂貴,請發送一些東西到 zeromq(我相信範常式式碼中有一個 php 庫)或某種等待伺服器,讓該伺服器接受,斷開連接,然後鎖定/寫入日誌。這樣,如果從 PHP 呼叫它,它只會準確記錄 PHP 執行的內容。

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