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