为什么在写入标准输出时,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做到这一点?
更新:
- 我也在docker-library / php项目网站上打开了一个问题 。
- 他们已经在其configuration中包含了
catch_workers_output = yes
。 所以这不是解决scheme。
它是正确的。 你正在运行php-fpm,而错误日志来自php-fpm,而不是来自PHP。 你应该期待php-fpm日志,而不是php日志。 幸运的是,php-fpm会在日志结尾写入从PHP接收到的每个日志。