はじめに
- Laravel のコードを全て Dokcer コンテナの中に入れ、単一の Docker コンテナにする。 Laravel 6 を Docker 化する。その1 – oki2a24 の続き。
今回行うこと
- php.ini の date.timezone 等の設定
php:<version>-apache の ini ファイル構成と設定内容
root@37ec29b2d2f2:/var/www/html# php --ini
Configuration File (php.ini) Path: /usr/local/etc/php
Loaded Configuration File: (none)
Scan for additional .ini files in: /usr/local/etc/php/conf.d
Additional .ini files parsed: /usr/local/etc/php/conf.d/docker-php-ext-bcmath.ini,
/usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini,
/usr/local/etc/php/conf.d/docker-php-ext-sodium.ini,
/usr/local/etc/php/conf.d/docker-php-ext-zip.ini
root@37ec29b2d2f2:/var/www/html#
php:7.3-apache コンテナ内で確認したところ上記の結果となりました。このことから、
/usr/local/etc/php/
に php.ini を置く/usr/local/etc/php/conf.d/
に追加の設定を置く
ということがわかりました。
日本で使いやすい設定にしたいですので、次の内容のファイルを追加して、デフォルトの設定を部分的に上書きすることにしました。
/usr/local/etc/php/conf.d/my.ini
[Date]
date.timezone = "Asia/Tokyo"
[mbstring]
mbstring.internal_encoding = "UTF-8"
mbstring.language = "Japanese"
PHP 設定を反映する
次の内容で反映させました。
$ git diff --cached
diff --git a/Dockerfile b/Dockerfile
index 0be1576..26f08fb 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -13,6 +13,8 @@ RUN apt-get update && apt-get install -y \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
+COPY ./docker/my.ini /usr/local/etc/php/conf.d/
+
ENV APACHE_DOCUMENT_ROOT /var/www/html/public
RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf
RUN sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf
diff --git a/docker/my.ini b/docker/my.ini
new file mode 100644
index 0000000..b45be20
--- /dev/null
+++ b/docker/my.ini
@@ -0,0 +1,5 @@
+[Date]
+date.timezone = "Asia/Tokyo"
+[mbstring]
+mbstring.internal_encoding = "UTF-8"
+mbstring.language = "Japanese"
おわりに
が今回の内容です。 以上です。
「Laravel 6 を Docker 化する。その 2 。 Docker コンテナの PHP とタイムゾーン設定」への1件の返信
[…] Laravel 6 を Docker 化する。その2 – oki2a24 の続き […]