Linux

如何通過 NGINX 配置 PHP-FPM 以寫入每個虛擬主機的日誌文件

  • July 25, 2019

我有帶有 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 是唯一這樣的變數。

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