PHP FPM + nginx 日志记录

时间:2021-04-15 12:28:24

标签: php nginx logging

从我在手册中读到的内容来看,带有 display_errors = offerror_log = /var/log/php.log 的 PHP 以及一个 没有 catch_workers_output = yes 应该发送该 php.log 文件的错误。我也明白 nginx fastcgi 应该将 STDERR 转储到 /dev/null。

但是我发现我网站的错误确实会反馈给 nginx 并记录到其日志文件中,我想知道原因。

我在 Debian 10 上使用 PHP7.3 nginx 1.14。nginx 和 php 的配置很复杂,但我可以从中提供关键信息。

我发现的东西

在我的 FPM 池配置中,我可以添加

[poolname]
user = pooluser
php_admin_value[error_log] = /var/log/fpm-php-$pool.log 

这有效,if /var/log/fpm-php-poolname.log 存在并且 rwpooluser

但是如果这些权限不正确,我会期望在任何地方都没有错误,或者在更高级别上出现一些错误(例如控制工人的 php 进程)。但相反,它似乎退回到将错误发送回 nginx - 我找不到任何地方记录的行为?

(有了这个经验性的理解,我现在明白了,因为 pooluser 无法写入全局配置的 error_log 文件,它正在回退并且错误登陆 nginx 的错误日志。)

>

所以我不明白的两件事是:

  1. php 回退到发送错误是正确的 - 什么?通过 STDERR? - 到 Nginx?
  2. nginx 然后为自己的日志文件“捕获工作输出”是否正确,即使未设置该选项?

0 个答案:

没有答案