【问题标题】:Why PHP-FPM prefixes a warning when writing to stdout?为什么 PHP-FPM 在写入标准输出时会添加警告前缀?
【发布时间】:2016-07-08 03:31:00
【问题描述】:

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

Docker 容器的常见做法是将所有日志消息写入stdout / stderr。所以我在我的容器中做同样的事情,代码基本上是这样的:

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

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

[2016 年 3 月 21 日 14:10:02] 警告:[pool www] 孩子 12 进入标准输出:“2016-03-21 14:10:02 [xxxx][-][-][trace] [yii\base\Application::bootstrap] 使用 yii\debug\Module::bootstrap() 引导" [21-Mar-2016 14:10:02] 警告:[pool www] 孩子 12 在标准输出中说:“2016-03-21 14:10:02 [xxxx][-][-][info][yii\ web\Session::open] 会话开始” ...

为什么会这样?有没有办法阻止 PHP-FPM 这样做?

更新:

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

【问题讨论】:

标签: php docker


【解决方案1】:

没错。您正在运行 php-fpm 并且错误日志来自 php-fpm ,而不是来自 PHP 。 你应该期待 php-fpm log ,而不是 php log。幸运的是 php-fpm 会将所有从 PHP 接收到的日志都写在它的日志末尾。

【讨论】:

    猜你喜欢
    • 2012-01-01
    • 1970-01-01
    • 2019-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-19
    • 2016-08-31
    相关资源
    最近更新 更多