当前位置: 首页 > 知识库问答 >
问题:

在停靠的Nginx PHP-FPM中配置时区

鲍俊杰
2023-03-14

我需要在Dockerfile中设置默认时区。我有两个容器(nginx和php7 fpm)。

当我进入PHP容器的bash并运行php--info|grep timezone时,我得到:

默认时区=

日期时区=

我的DockerFile如下所示:

nginx/Dockerfile:

FROM debian:jessie

RUN apt-get update && apt-get install -y nginx

ADD nginx.conf /etc/nginx/
ADD site.conf /etc/nginx/sites-available/

RUN ln -s /etc/nginx/sites-available/site.conf /etc/nginx/sites-enabled/site
RUN rm /etc/nginx/sites-enabled/default

RUN echo "upstream php-upstream { server php:9000; }" > /etc/nginx/conf.d/upstream.conf

RUN usermod -u 1000 www-data

CMD ["nginx"]

EXPOSE 80
EXPOSE 443

php fpm/Dockerfile:

FROM php:7.0-fpm

RUN apt-get update && apt-get install -y git unzip

RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUN composer --version

RUN rm /etc/localtime
RUN ln -s /usr/share/zoneinfo/Europe/Madrid /etc/localtime
RUN "date"

RUN docker-php-ext-install pdo pdo_mysql

RUN pecl install xdebug
RUN docker-php-ext-enable xdebug
RUN echo "error_reporting = E_ALL" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
RUN echo "display_startup_errors = On" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
RUN echo "display_errors = On" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
RUN echo "xdebug.remote_enable=1" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
RUN echo "xdebug.remote_connect_back=1" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
RUN echo "xdebug.idekey=\"PHPSTORM\"" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
RUN echo "xdebug.remote_port=9001" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini

WORKDIR /var/www/site

我试着使用类似问题的答案,但没有结果。

注意:我正在使用docker-composebuilddocker-composeup-d来运行完整的堆栈,这正是这个堆栈。

共有1个答案

庄瀚玥
2023-03-14

时区设置有两种类型。一个是系统级。您可以使用/etc/localtime

请参阅下面的Dockerfile步骤

ENV TZ=America/Los_Angeles
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

PS:取自https://serverfault.com/questions/683605/docker-container-time-timezone-will-not-reflect-changes

此外,您还可以参考另一篇使用docker compose设置容器时区的文章

接下来是PHP/APP级别设置。为此,您可以创建ini文件。这可以通过添加下面的行到Dockerfile来完成

RUN printf '[PHP]\ndate.timezone = "US/Central"\n' > /usr/local/etc/php/conf.d/tzone.ini
 类似资料:
  • 如果网站要写入某个目录,在我们搭建的环境里,你要确保运行 PHP-FPM 的用户对这个要写入的目录拥有写入权限。一般目录的拥有者对目录都有可以写入的权限。我们可以把运行 PHP-FPM 的用户修改成跟运行 NGINX 一样的用户,这样更好记一些。 先查看一下进程,看看运行 NGINX 的用户叫什么: ps aux | grep nginx 显示,运行 nginx: worker process

  • 我对docker比较陌生。我想建立一个postgres数据库,但我想知道如果我重新创建容器,如何确保数据不会丢失。 然后我偶然发现了命名卷(不是绑定卷)以及如何使用它们。但是...在Dockerfile中,您不能使用命名卷。例如data:/var/lib等。正如我使用Dockerfile所理解的那样,它总是一个匿名卷。所以每次我重新创建一个容器时,它都会得到自己的新卷。 所以我的问题来了: 首先:

  • 我有一个小的Spring Boot API在docker中运行。下面显示的是我用来升级容器的命令。 然后,我有一个停靠的JMeter,我使用下面的命令来启动它 但是所有的测试都失败了,请求没有被发送到API。这就是JMeter的CLI的外观 请求的测试配置: 协议:htttp 服务器:localhost 端口:8080 方法:GET 路径:/api/factorial 完整的bash文件如下所示:

  • wxAui是一个包含在wxWidgets API中的高级用户界面库。 Wx.aui.AuiManager是AUI框架中的中心类。 AuiManager使用wx.aui.AuiPanelInfo对象中的每个面板信息管理与特定帧关联的窗格。 让我们了解PanelInfo对象控件对接和浮动行为的各种属性。 将可停靠窗口放在顶层框架中涉及以下步骤 - 首先,创建一个AuiManager对象。 self.m

  • 我刚刚使用来自的引用从(apachempm_prefork)切换到(apachephpfpmmod_fastcgi) 在ubuntu上从prefork MPM切换到worker MPM php fpm http://www.garron.me/en/blog/ubuntu-lamp-apache2-mpm-worker-and-php-fpm.html 以前主要的apache配置是在 vhost配

  • 本文向大家介绍PHP-FPM 的管理和配置详解,包括了PHP-FPM 的管理和配置详解的使用技巧和注意事项,需要的朋友参考一下 PHP-FPM 是什么? PHP-FPM 是 FastCGI 的进程管理器。 PHP-FPM 的特点 支持平滑停止、启动的高级进程管理功能 动、静态子进程产生 慢日志,记录脚本运行所导致的异常缓慢 可以监听不同的端口和使用不同的 php.ini 几个概念的理解 1)、CG