如何通过 NGINX 配置 PHP-FPM 以写入每个虚拟主机的日志文件

B14*_*4D3 11 linux nginx logging php-fpm

我有带有 Nginx 和 PHP-FPM 的 Fedora 16。一切都很好。所有带有 PHP 通知、警告、错误等的日志都在/var/log/php-fpm/www-error.log.

有没有办法配置 PHP-FPM 在配置为 Nginx 错误日志的正确日志文件中写入错误?所以我想记录每个虚拟主机的PHP 错误而不是在一个全局文件中。(就像在 Apache Httpd 和 PHP 中一样)。

All*_*ude 14

PHP-FPM 指令:catch_workers_output = yes 将导致 PHP 发送到 stdout/stderr 的错误被发送回 nginx,并且它们将被记录。

在 PHP 5.2.4 和更新版本中,指令display_errors不再是布尔值,而是接受 'stderr' 作为选项。这应该会导致所有错误返回到 nginx,并记录到每个 vhost。

所以在你的 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 是唯一的此类变量。