2015-05-29 36 views
2

我正在用docker開發一個wordpress站點。我需要編寫php代碼,所以我想用apache錯誤日誌來查看我的php錯誤。用docker開發php

在非泊塢窗的環境,我會做這樣的事情:

tail -100f /var/log/apache2/error.log 

隨着泊塢窗的情況下,如果我登錄我的Apache容器我的Apache日誌老空:

$ docker exec -t -i apache /bin/bash 
[email protected]:/var/www/html# cd /var/log/apache2/ 
[email protected]:/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 .. 
[email protected]:/var/log/apache2# 

也許日誌是在不同的地方,所以我去apache虛擬主機配置和網站啓用文件夾是空的!

在網站-速效我有這樣的配置: 錯誤日誌$ {} APACHE_LOG_DIR /error.log 的CustomLog $ {} APACHE_LOG_DIR結合/access.log

其中$ {} APACHE_LOG_DIR是/ var /網絡/的Apache2

我的wordpress圖像是官方的:https://registry.hub.docker.com/_/wordpress/ 我看着dockerfile尋找提示,但我看不到配置相關。它基於FROM php:5.6-apache,所以我也看到dockerfile,但是我沒有在那裏獲得任何日誌配置。

目前,這是唯一的出路,我可以得到日誌:

docker logs apache 

如果Apache是​​我的容器名稱。然而,我只得到apache訪問日誌,我沒有得到任何錯誤日誌

+1

你找到了解決辦法嗎? – Johan

回答

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