为什么PHP-FPM在写入标准输出时会加上警告前缀?
我尝试使用该图像在Docker容器中运行 docker容器通常将所有日志消息写入为什么PHP-FPM在写入标准输出时会加上警告前缀?,php,docker,Php,Docker,我尝试使用该图像在Docker容器中运行 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对stdout说:“2016-03-21 14
stdout
/stderr
。因此,我在容器中也这样做,代码基本上如下所示:
$fp = @fopen('php://stdout','w');
fwrite($fp, $message);
fclose($fp);
不幸的是,PHP-FPM现在在我的所有日志消息前面加上了难看的警告:
[21-Mar-2016 14:10:02]警告:[pool www]child 12对stdout说:“2016-03-21 14:10:02[x.x.x][-][-][trace][yii\base\Application::bootstrap]带yii\debug\Module::bootstrap()的bootstrap”
[21-Mar-2016 14:10:02]警告:[pool www]child 12对stdout说:“2016-03-21 14:10:02[x.x.x][-][-][info][yii\web\Session::open]会话已开始”
为什么会这样?有没有办法阻止PHP-FPM这样做
更新:
catch\u workers\u output=yes
。所以这不是解决办法这是正确的。您正在运行php fpm,错误日志来自php fpm,而不是php。
您应该使用php fpm日志,而不是php日志。幸运的是,php fpm将把从php收到的所有日志都写在日志的末尾。我认为这是一个常见的错误,它在44版中得到了修复,你能确认吗?@HalayemAnis不能确认。正如你应该从问题描述中看到的,我没有使用heroku。一般来说,这更像是php fpm的错误行为。您尝试在
php.ini
中使用catch\u workers\u output
选项?不确定这是否有效。希望此线程可以帮助您@MichaelHärtl,向您的努力致敬,我刚刚在上看到: