使用docker开发php

时间:2015-05-29 09:47:10

标签: wordpress apache docker

我正在开发一个带有docker的wordpress网站。我需要编写PHP代码,所以我想看看我的php错误与apache错误日志。

在非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-availability中我有这样的配置:     ErrorLog $ {APACHE_LOG_DIR} /error.log     CustomLog $ {APACHE_LOG_DIR} /access.log合并

其中$ {APACHE_LOG_DIR}是/ var / www / apache2

我的wordpress图片是官方图片:https://registry.hub.docker.com/_/wordpress/ 我查看dockerfile搜索提示,但我没有看到配置相关。它基于FROM php:5.6-apache所以我也看看dockerfile但我没有得到任何日志配置。

目前,这是我获取日志的唯一方法:

docker logs apache

apache是​​我的容器名称。但是我只获得apache access-logs,我没有得到任何错误日志

1 个答案:

答案 0 :(得分:0)

我有同样的问题。为了解决这个问题,我添加了一个php配置,打开log_errors并指定error_log位置。

例如:

# 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.ini