没有在Docker&PHP-FPM中findPHP date.timezone

我正在用Docker和Docker-compose创build一个Symfony环境(PHP-FPM,Nginx等)。

但是,PHP不使用我的php.ini,并忽略了configuration(在我的Symfony应用程序中没有finddate.timezone参数)。

当然,当我在我的容器上,date.timezone正确设置在2 php.ini(cli&FPM)。

我不明白为什么,但如果我把我的php.ini放在/ usr / local / etc / php / folder(wtf)

我错过了什么?

docker-compose.yml:

nginx: image: nginx volumes: - "./docker/nginx/nginx.conf:/etc/nginx/nginx.conf:ro" links: - "php:php" ports: - "80:80" - "443:443" working_dir: "/etc/nginx" php: build: docker/php volumes: - ".:/var/www:rw" working_dir: "/var/www" 

Dockerfile:

 FROM php:5-fpm ENV DEBIAN_FRONTEND noninteractive RUN apt-get update && \ apt-get install -y php5-common php5-fpm php5-cli php5-mysql php5-apcu php5-intl php5-imagick && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* RUN sed -i 's/;date.timezone =/date.timezone = "Europe\/Paris"/g' /etc/php5/fpm/php.ini RUN sed -i 's/;date.timezone =/date.timezone = "Europe\/Paris"/g' /etc/php5/cli/php.ini RUN usermod -u 1000 www-data 

官方PHP Docker镜像使用/usr/local/etc/php作为基础文件夹:请参阅Dockerfile 。

我一直面对同样的问题一段时间,主机有一个正确的date/时间,但每个PHP容器在格林尼治标准时间,而不是欧洲/巴黎或主机date时间。

对于那些你会search一个有效的答案,并需要更多的精度比@moliver答案,使用dockerfile中的sed可能不是最好的答案。 而且, php.ini可能不会在构build时创build。 这里是我的PHP容器中的/usr/local/etc/php的ls。

 root@6fd7bc929a7e:/usr/local/etc/php/conf.d# ls docker-php-ext-bcmath.ini docker-php-ext-exif.ini docker-php-ext-mysqli.ini docker-php-ext-soap.ini docker-php-ext-xsl.ini docker-php-ext-bz2.ini docker-php-ext-gd.ini docker-php-ext-pcntl.ini docker-php-ext-tidy.ini docker-php-ext-zip.ini docker-php-ext-calendar.ini docker-php-ext-mcrypt.ini docker-php-ext-pdo_mysql.ini docker-php-ext-xmlrpc.ini ext-imagick.ini 

(是的,我添加了很多扩展,但没有默认的php.ini)。

docker-compose非常灵活,你可以添加一个包含php.ini的信息info:version:'2'

 services: php: build: ./DOCKERFILES/phpdemo container_name: applicationDEMO volumes: - "./conf/whatever.ini:/usr/local/etc/php/conf.d/whatever.ini" - "/etc/timezone:/etc/timezone:ro" - "/etc/localtime:/etc/localtime:ro" 

并在你的./conf/whatever.ini

 date.timezone = "Europe/Paris" 

希望这可以帮助