【问题标题】:Developing php with docker使用 docker 开发 php
【发布时间】:2015-08-12 03:08:35
【问题描述】:

我正在使用 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 中,我有这样的配置: 错误日志 ${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 访问日志,我没有得到任何错误日志

【问题讨论】:

  • 您找到解决方案了吗?

标签: wordpress apache docker


【解决方案1】:

我遇到了同样的问题。为了解决这个问题,我添加了一个打开 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.ini

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-01
    • 1970-01-01
    • 2019-05-10
    • 2019-11-03
    • 2018-02-18
    • 2017-12-08
    • 2019-06-16
    • 2015-03-05
    相关资源
    最近更新 更多