为什么 PHP-FPM 在写入 stdout 时会加上警告前缀?
我尝试使用官方的php-fpm映像在Docker容器中运行基于Yii的PHP应用程序。
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 [x.x.x.x][-][-][trace][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 [x.x.x.x][-][-][info][yii\web\Session::open] 会话开始” ...
为什么会这样,有没有办法防止PHP-FPM这样做?
更新:
- 我还在 docker-library/php 项目站点上打开了一个问题。
- 它们已在其配置中包含 。所以这不是解决方案。
catch_workers_output = yes
- 根据这些变化,问题应该在PHP 7.3中修复。