为什么在写入标准输出时,PHP-FPM为前缀添加警告?

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

Docker容器将所有日志消息写入stdout / stderr是很常见的做法。 所以我从我的容器中做了相同的代码,基本上看起来像这样:

 $fp = @fopen('php://stdout','w'); fwrite($fp, $message); fclose($fp); 

不幸的是,PHP-FPM现在将我所有的日志消息加上丑陋的警告:

[21-Mar-2016 14:10:02]警告:[pool www] child 12表示inputstdout:“2016-03-21 14:10:02 [xxxx] [ – ] [ – ] [trace] [yii \基地\应用程序::引导]引导用yii \debugging\模块:: bootstrap()“[21-Mar-2016 14:10:02]警告:[池www]孩子12说到标准输出:”2016-03-21 14:10:02 [xxxx] [ – ] [ – ] [info] [yii \ web \ Session :: open]会话开始“…

为什么是这样的,有没有办法阻止PHP-FPM做到这一点?

更新:

  1. 我也在docker-library / php项目网站上打开了一个问题 。
  2. 他们已经在其configuration中包含了catch_workers_output = yes 。 所以这不是解决scheme。

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