最近、Yosemite 10.10.3 のクリーン インストールに OSX Server をインストールし、Apache 構成をカスタマイズして、サーバーが使用する PHP のバージョンを変更したいと考えました。homebrew を使用して PHP をインストールし、Apache 構成ファイルに変更を加えました。翌日、Apache が Yosemite に同梱されている PHP のデフォルト バージョンを使用していることに気付くまでは、問題なく動作していました。
少しいじってみると、編集していた Apache 設定ファイル ( /Library/Server/Web/Config/apache2/httpd_server_app.conf
) が、OSX Server アプリケーションが再起動されるたびに再生成され、Yosemite に同梱されている PHP のデフォルト バージョンに戻ってしまうことに気付きました。
httpd.conf
OSX サーバーが生成するデフォルトはありますかhttpd_server_app.conf
?
アップデート:
もう少し調べてみました。LoadModule 呼び出しを追加したときに、httpd_server_app.conf
古いバージョンをコメント アウトし、次の行に新しいバージョンの呼び出しを追加しました。
#LoadModule php5_module libexec/apache2/libphp5.so
LoadModule php5_module /usr/local/opt/php56/libexec/apache2/libphp5.so
サーバーを再起動すると、新しく再生成されたファイルは次のようになります (新しいモジュールへの呼び出しは残りますが、古いモジュールへの呼び出しはコメント解除されます)。
LoadModule php5_module libexec/apache2/libphp5.so
LoadModule php5_module /usr/local/opt/php56/libexec/apache2/libphp5.so
Apache は最初のモジュールをロードしますが、この場合は古いバージョンになります。新しいモジュール呼び出しを古いモジュール呼び出しの上に配置すれば、問題は解決します。ただし、他の LoadModule 呼び出しがコメント解除されたままになっているため、理想的な解決策とは思えません。
Apache 設定の編集に関しては、順序を変更するだけでは問題が解決しないシナリオが他にもあると思います。