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

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

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

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

答案1

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

在 PHP 5.2.4 及更高版本中,该指令显示错误不再是布尔值,但将接受“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”)。

如果您有多个池,您可以轻松地分别记录它们。

通过快速浏览源代码,看起来 $pool 是唯一这样的变量。

相关内容