PHP FPM+;nginx测井

PHP FPM+;nginx测井,php,nginx,logging,Php,Nginx,Logging,从我在手册中读到的内容来看,带有display\u errors=off和error\u log=/var/log/PHP.log的PHP和没有catch\u workers\u output=yes的worker应该向该PHP.log文件发送错误。我还知道nginx fastcgi应该将STDERR转储到/dev/null 然而,我发现我的站点的错误确实会反馈到nginx并记录到它的日志文件中,我想知道原因。 我在Debian 10上使用PHP7.3 nginx 1.14。nginx和php的

从我在手册中读到的内容来看,带有
display\u errors=off
error\u log=/var/log/PHP.log
的PHP和没有
catch\u workers\u output=yes
的worker应该向该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 
如果
/var/log/fpm php poolname.log
存在并且是
rw
用于
pooluser
,则此操作有效

但是,如果这些权限不正确,我希望在任何地方都不会出现错误,或者在更高级别上出现一些错误(例如,控制工作人员的php进程)。但是,它似乎又回到了将错误发送回nginx的方式——我在任何地方都找不到这种行为的记录

(有了这种经验性的理解,我现在明白了,因为
pooluser
无法写入全局配置的
error\u log
文件,所以它正在回退,错误正在nginx的错误日志中着陆。)

所以有两件事我不明白:

  • php返回发送错误是正确的吗?什么?通过STDERR?-去nginx
  • nginx为自己的日志文件“捕获工作输出”是正确的吗,即使没有设置该选项