php-apacheのDockerコンテナでphp.iniを有効化する

php-apacheコンテナでphp.iniを使用する

Dockerのphp-apacheイメージによる実行環境でPHPの設定ファイル、php.iniがデフォルトでは読み込まれていませんでしたので、読み込ませて有効化する方法をメモします。

環境: Docker 20.10.14, php:7.4.15-apache(dockerイメージ)

php.iniを作成する

実行中のdockerコンテナへログイン

$ docker exec -it (コンテナID) bash

以下のコマンドでphp.iniの場所を確認

# php --ini
Configuration File (php.ini) Path: /usr/local/etc/php
Loaded Configuration File:         (none)

Loaded Configuration File: (none)と表示され、読み込まれていないことが確認できます。

/usr/local/etc/php/ を確認

# ls /usr/local/etc/php/

上記ディレクトリにphp.iniとして利用できる2つのファイル(php.ini-development, php.ini-production)が存在しますので、いずれかをコピーして、php.iniを作成します。

# cp /usr/local/etc/php/php.ini-development /usr/local/etc/php/php.ini

Apacheの再起動

php.iniの複製ができたら、Apacheを再起動して設定を再読み込みさせます。

注意
一般的なApacheの再起動コマンド 「systemctl apache2 restart」 を実行すると、コンテナ自体が終了してしまうので、今回のケースでは以下の方法で再起動を行います。

# /etc/init.d/apache2 reload

[ ok ] Reloading Apache httpd web server: apache2. (再起動完了)

前述したphp.iniの確認コマンドの再度実行して、php.iniが読み込まれていることを確認します。

Loaded Configuration File:         /usr/local/etc/php/php.ini

Follow me!