我正在用docker开发一个wordpress网站。我需要写php代码,所以我想用apache错误日志来查看我的php错误。
在非docker环境中,我会这样做:
tail -100f /var/log/apache2/error.log对于docker方案,如果我登录apache容器,我的apache日志是旧的和空的:
$ docker exec -t -i apache /bin/bash
root@d47b168d8c4b:/var/www/html# cd /var/log/apache2/
root@d47b168d8c4b:/var/log/apache2# ls -alrt
total 8
-rw-r----- 1 www-data www-data 0 Apr 30 04:34 other_vhosts_access.log
-rw-r----- 1 www-data www-data 0 Apr 30 04:34 error.log
-rw-r----- 1 www-data www-data 0 Apr 30 04:34 access.log
drwxr-x--- 2 www-data www-data 4096 Apr 30 04:34 .
drwxr-xr-x 11 root root 4096 Apr 30 05:58 ..
root@d47b168d8c4b:/var/log/apache2# 可能日志在不同的位置,所以我转到apache虚拟主机配置,而启用站点的文件夹是空的!
在sites-availabe中,我有以下配置: ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined
其中${APACHE_LOG_DIR}是/var/www/apache2
我的wordpress镜像是官方的:https://registry.hub.docker.com/_/wordpress/我查看了dockerfile,寻找提示,但我没有看到相关的配置。它基于php:5.6-apache,所以我也查看了dockerfile,但在那里我没有得到任何日志配置。
目前,这是我获取日志的唯一方法:
docker logs apache其中apache是我的容器名称。但是,我只得到apache访问日志,没有得到任何错误日志
发布于 2016-04-20 21:01:02
我也有同样的问题。为了解决这个问题,我添加了一个打开log_errors并指定error_log位置的php配置。
例如:
# cat /usr/local/etc/php/conf.d/php_error.ini
log_errors = on
error_log = /var/log/apache2/php_err.log您还需要创建php_err.log文件并设置适当的权限:
touch /var/log/apache2/php_err.log
chown www-data:www-data /var/log/apache2/php_err.log下面是一个执行此操作的Dockerfile:
FROM wordpress:latest
MAINTAINER moo
RUN touch /var/log/apache2/php_err.log && chown www-data:www-data /var/log/apache2/php_err.log
COPY php_error.ini /usr/local/etc/php/conf.d/php_error.inihttps://stackoverflow.com/questions/30526374
复制相似问题