为什么PHP-FPM在写入stdout时会出现警告?

Mic*_*rtl 26 php docker

我尝试使用官方的php-fpm图像在Docker容器中运行基于Yii的PHP应用程序.

Docker容器通常会将所有日志消息写入stdout/ stderr.所以我从我的容器做同样的代码基本上是这样的:

$fp = @fopen('php://stdout','w');
fwrite($fp, $message);
fclose($fp);
Run Code Online (Sandbox Code Playgroud)

不幸的是,PHP-FPM现在为我的所有日​​志消息添加了丑陋的警告:

[21-Mar-2016 14:10:02]警告:[池www]孩子12说到stdout:"2016-03-21 14:10:02 [xxxx] [ - ] [ - ] [追踪] [yii\base\Application :: bootstrap] bootstrap with yii\debug\Module :: bootstrap()"[21-Mar-2016 14:10:02]警告:[pool www] child 12对stdout表示:"2016-03-21 14:10:02 [xxxx] [ - ] [ - ] [info] [yii\web\Session :: open]会话开始"......

为什么这样,有没有办法防止PHP-FPM这样做?

更新:

  1. 我还开了一个问题,泊坞窗库/ PHP项目现场.
  2. 他们已经包括catch_workers_output = yes它们的配置.所以这不是解决方案.
  3. 根据这些变化,问题应该在PHP 7.3中修复

Ehs*_*shi 1

它是正确的。您正在运行 php-fpm ,错误日志来自 php-fpm ,而不是来自 PHP 。你应该期待 php-fpm log ,而不是 php log 。幸运的是,php-fpm 会将从 PHP 接收到的每条日志写入其日志末尾。