我有 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 是唯一这样的变量。