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


11

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

有没有一种方法可以配置PHP-FPM在配置为Nginx错误日志的适当日志文件中写入错误?因此,我想针对每个虚拟主机而不是在一个全局文件中记录PHP错误。(例如在Apache Httpd和PHP中)。

Answers:


14

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”)。

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

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


1
嗯,似乎有点问题display_errors="stderr"。您测试过了吗?
Pacerier,2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.