Linux
如何通過 NGINX 配置 PHP-FPM 以寫入每個虛擬主機的日誌文件
我有帶有 Nginx 和 PHP-FPM 的 Fedora 16。一切都很好。所有帶有 PHP 通知、警告、錯誤等的日誌都在
/var/log/php-fpm/www-error.log
.有沒有辦法配置 PHP-FPM 將錯誤寫入配置為 Nginx 錯誤日誌的正確日誌文件中?所以我想在每個虛擬主機上記錄 PHP 錯誤,而不是在一個全域文件中。(如在 Apache Httpd 和 PHP 中)。
PHP-FPM 指令:
catch_workers_output = yes
將導致 PHP 發送到 stdout/stderr 的錯誤被發送回 nginx,並且它們將被記錄。在 PHP 5.2.4 和更新版本中,指令display_errors不再是布爾值,而是接受 ‘stderr’ 作為選項。這應該會導致所有錯誤返回到 nginx,並按虛擬主機記錄。
所以在你的 PHP-FPM 配置中:
php_admin_value[display_errors] = 'stderr'
您的另一個選擇是指令:
php_admin_value[error_log] = /var/log/fpm-php.www.log
這就是您現在可能使用的。php-fpm.conf 支持一些變數,比如 $pool(對你來說,它可能會返回 ‘www’)。
如果您有超過 1 個池,則可以輕鬆地分別記錄它們。
通過快速瀏覽原始碼,看起來 $pool 是唯一這樣的變數。