【发布时间】:2017-10-30 10:43:15
【问题描述】:
我正在运行一个 php docker 映像 (php:5.6-apache),它有 apache 的错误,并且使用符号链接分别重定向到 STDERR 和 STDOUT 的访问日志。
当我在前台运行 docker 镜像或访问 docker 容器日志时,我可以看到 STDOUT 输出。但我没有看到任何错误(即使我生成了 php 错误)。
知道为什么会这样以及如何解决吗?
我正在为 Mac 运行 docker(但我认为这没有任何区别)
谢谢
access.log -> /dev/stdout
error.log -> /dev/stderr
other_vhosts_access.log -> /dev/stdout
编辑/解决:
正如@BMitch 提到并在下面证明的那样,STDERR 重定向工作正常。
问题出在 PHP 配置上。如果我使用error_log() 记录错误,它将输出到日志。但是如果我有一个 php 错误,比如调用一个未定义的函数,那么该错误将永远不会出现在日志中。这似乎有点不一致。无论如何,...
我必须在/usr/local/etc/php/ 中创建一个php.ini 文件并添加这两个参数:
log_errors = On
error_log = /var/log/apache2/error.log
然后重新启动 docker 容器。这导致记录所有 PHP 错误并将其输出到 STDERR。有关示例,请参见@German 的答案。
【问题讨论】:
-
您安装了任何卷吗?
-
@BMitch,是的,但只有 /var/www