13
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PHP用dockerでtimezoneを日本時間に設定する

Posted at

PHP開発用のdocker、prgyukke/Docker_for_PHPを作った際に、timezoneを日本時間に設定したのでその設定方法のメモです。

設定方法

PHPのtimezoneを変更する際には下記の2つの設定が必要となります。
①サーバローカルのtimezone設定
②php.iniでのtimezone設定

上記の両方が設定されていてはじめてPHPで処理する際のtimezoneが意図通り正しく変更されます。

①サーバローカルのtimezone設定

今回の場合、コンテナのtimezoneの設定方法となりますが、該当するコンテナのdockerfileに下記を記載してください。(コンテナのOS想定はubuntuです。)

ENV TZ Asia/Tokyo
RUN echo "${TZ}" > /etc/timezone \
   && dpkg-reconfigure -f noninteractive tzdata

②php.iniでのtimezone設定

PHPの設定ファイルであるphp.iniは予めこちらで用意し、コンテナにマウントしてあげることで設定をしましょう。
今回はデフォルト言語の日本語設定もしてしまいます。

php.ini

[Date]
date.timezone = "Asia/Tokyo"
[mbstring]
mbstring.internal_encoding = "UTF-8"
mbstring.language = "Japanese"

上記のphp.iniをPHP用のコンテナにマウントします。
下記をコンテナ用のdockerfileに記載してください。

ADD ./php.ini /usr/local/etc/php/php.ini

まとめ

上記設定後、dockerを起動しphpinfo()で確認するとtimezoneが無事、Asia/Tokyoに設定されているのがわかります。

e0fa7046b135d260a49e52fdadfca2f4.png

設定が変更されていない場合は、一度関連するコンテナを削除する、設定対象のコンテナが正しいかを確認するなどをお試しください。

13
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?