【发布时间】:2019-04-24 08:20:25
【问题描述】:
在 docker-compose 中使用 apache + php-fpm 容器,我无法让 php-fpm 容器显示任何错误。
docker-compose.yml
version: '3'
services:
php:
build:
context: ./php
ports:
- 9000:9000
volumes:
- ./code:/code
- ./php/www.conf:/usr/local/etc/php-fpm.d/www.conf
environment:
ENVIRONMENT: local
web:
image: httpd:2.4
depends_on:
- php
ports:
- 80:80
volumes:
- ./code:/usr/local/apache2/htdocs
- ./web/httpd.conf:/usr/local/apache2/conf/httpd.conf
depends_on:
- php
php-fpm Dockerfile:
FROM php:5.6-fpm
php-fpm www.conf:
[global]
error_log = /proc/self/fd/2
[www]
user = www-data
group = www-data
listen = nginx:9000
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
; Logging
; if we send this to /proc/self/fd/1, it never appears
access.log = /proc/self/fd/2
clear_env = no
; Ensure worker stdout and stderr are sent to the main error log.
catch_workers_output = yes
php_flag[display_errors] = on
php_admin_flag[log_errors] = on
;php_admin_value[error_log] = /var/log/fpm-php.www.log
php_admin_value[error_reporting] = E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_DEPRECATED
php_admin_value[display_startup_errors] = on
docker-compose logs 只显示 php-fpm 访问日志,没有错误日志。
尝试了帖子中提出的所有解决方案,尽可能重复:PHP-FPM doesn't write to error log 它们都不适合我,请在下面查看我的 cmets。
【问题讨论】:
-
那张海报没有使用 Docker?
-
不应该真的有所作为@syst0m
-
我个人在 vhosts.ini 文件中的 php.ini conf.d 下指定了我的错误日志位置。我没有任何问题,我正在使用与您相同的图像的 php 7.2 版本。您能否通过“ssh”进入您的容器
docker exec -it {php container name} bash并运行所有需要的命令/测试来检查您的 conf 文件是否已全部生效。 -
我已经有了这个指令“catch_workers_output = yes”。检查我发布的 www.conf。
标签: php apache docker docker-compose