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

时间:2016-03-21 14:45:46

标签: php docker

我尝试使用Yii based PHP application图片在Docker容器中运行official php-fpm

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

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

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

  

[2016年3月21日14:10:02]警告:[池www]孩子12说到stdout:" 2016-03-21 14:10:02 [xxxx] [ - ] [ - ] [trace] [yii \ base \ Application :: bootstrap]使用yii \ debug \ Module :: bootstrap()"引导程序   [21-Mar-2016 14:10:02]警告:[池www]孩子12说到stdout:" 2016-03-21 14:10:02 [xxxx] [ - ] [ - ] [info] [yii \ web \ Session :: open]会话开始"   ...

为什么会有这种方法阻止PHP-FPM这样做?

更新:

  1. 我还在an issue项目网站上开了docker-library/php
  2. 他们已在their configuration中加入了catch_workers_output = yes。所以这不是解决方案。
  3. 根据these changes,问题应该在PHP 7.3中修复

1 个答案:

答案 0 :(得分:1)

这是对的。你正在运行php-fpm,错误日志来自php-fpm,而不是来自PHP。 你应该期待php-fpm日志,而不是php日志。幸运的是,php-fpm会在日志末尾写下从PHP收到的每个日志。