【PHP】複数バージョンのPHPを切り替えてテストする
PHP4系と、PHP5系では仕様が大きく異なるため、両方でテストをしたいケースがあります。Apache2では、PHPIniDirで、php.iniのパスを指定できるため、PHPの複数バージョンの共存自体は問題ありません。しかし、その都度Apacheのhttpd.confを書き換えるのでは面倒です。
Apacheの起動引数で、設定を切り替えることが可能なので、この機能を使うと便利です。
方法1 -Dパラメータを使う
アパッチの起動パラメータで、-D パラメータ名を渡すと、IfDefineディレクティブで使うことができます。
やり方は、httpd.confの中に次のように記述しておきます。
<IfDefine php5> #c:\php5にphp5がある場合 LoadModule php5_module C:/php5/php5apache2_2.dll PHPIniDir "C:\php5" </IfDefine> <IfDefine php4> #c:\php4にphp4がある場合 LoadModule php4_module C:/php4/php4apache2.dll PHPIniDir "C:\php4" </IfDefine>
コンソールでApacheを実行する場合
コマンドプロンプトで、Apacheのhttpd.exeを実行する場合は、単純に引数をつけます。
C:\> "c:\Program Files\Apache Group\Apache2\bin\httpd.exe" -D PHP5
(終了はCtrl + C)
Windowsのサービスに登録する場合
コマンドプロンプトで次のようなコマンドを実行します。(Windows VistaやWindows 7の場合は、管理者として実行)
C:\> "c:\Program Files\Apache Group\Apache2\bin\httpd.exe httpd -k install -n Apache2PHP5 -D PHP5
::Apache2PHP5は、サービス名です。好きな名前で良いです。
登録してあるサービスを削除するときは、次のようにします。
C:\> "c:\Program Files\Apache Group\Apache2\bin\httpd.exe httpd -k uninstall -n Apache2PHP5
ただし、同じアドレス・ポートで、複数のApacheは起動できないので、注意してください。逆に言うとポートを変えるなどして異なればOKです。
方法2: -fパラメータを使う
httpd.exeの起動パラメータの -fパラメータでは、httpd.confのパスを指定することができます。つまり、複数のhttpd.confを作っておいて、パラメータでそれを切り替えれば良いわけです。
実際、開発するプロジェクトによって、Document rootなどのほかの要素も変えたいことが多いので、httpd.confの雛形を作っておけば、便利です。
たとえば、E:/MyWork/PHP4/ と E:/MyWork/PHP5/ とに別々にhttpd.confを作成しておき、Apacheの起動時に切り替えます。
コンソールでApacheを実行する場合
C:\> "c:\Program Files\Apache Group\Apache2\bin\httpd.exe" -f "E:/MyWork/PHP5/httpd.conf"
::E:/MyWork/PHP5/にhttpd.confを作ってある場合
(終了はCtrl + C)
Windowsのサービスに登録する場合
C:\> "c:\Program Files\Apache Group\Apache2\bin\httpd.exe httpd -k install -n Apache2PHP5 -f "E:/MyWork/PHP5/"
::E:/MyWork/PHP5/にhttpd.confを作ってある場合
::Apache2PHP5は、サービス名です。好きな名前で良いです。
登録してあるサービスを削除するときは、先程の方法1と一緒です。
C:\> "c:\Program Files\Apache Group\Apache2\bin\httpd.exe httpd -k uninstall -n Apache2PHP5
毎回コマンドを打つのが面倒であれば、バッチファイルに保存しておくと良いでしょう。その際は、エラーが出たときにわからなくならないように、pauseコマンドを入れておくと良いです。
TrackBack URL :
Comments (0)