トップページ

2005年10月20日

PHP4とPHP5を切り替える

特にローカルの開発 & テスト環境では、時折(あるいはしばしば)異なるバージョンのPHPに切り替える必要が出てくるわけですが。以下はxamppなどを使わずに、ベタにインストールしたWindowsのApache 2.0.xモジュール版PHPで、異なるバージョンを切り替える手順。まとまった解説が見当たらず、また未だに「iniとdllはWindowsのシステムフォルダへ」と書いてあるドキュメントもあるので、自分用のメモ。


PHP4では、php.iniやDLLをWindowsのシステムフォルダにコピーして使用する方法が推奨されていましたが、この方法ではファイルが分散するため管理が煩雑になり、例えばバージョンアップ時の作業が面倒であったり(どのファイルをどのフォルダにコピーしたかいちいち覚えてられないっつうの)、異なるバージョンのPHPを切り替えて運用しようとすると、その都度php.iniや拡張モジュール用の外部DLLをコピーし直さなければなりません。
一方PHP5では、これらのファイルもPHPのインストール先のフォルダにまとめて運用する方法が推奨されています。PHP4とPHP5を共にこの方法で運用できるように設定することで、異なるバージョンのPHPを、より簡単に切り替えて運用することができます(必然的にバージョンアップも容易になります)。

以下は、フォルダのリネームとhttpd.confの修正だけで、PHP4とPHP5を切り替える例です。
具体的には、「C:\php」で運用するように設定したPHP4とPHP5を別の名前のフォルダに用意しておいて、使用する側を「C:\php」にリネームし、httpd.confのLoadModuleディレクティブのコメントを付け替えて、Apache 2.0.xを再起動することで切り替えます。

PHP5のインストール

  1. php.netのダウンロードページからダウンロードしたPHP5のZIPパッケージ版(インストーラ版の使用は相変わらず推奨されていません)をC:\phpフォルダに展開し、作成されたファイルのうち、php.iniの推奨設定版であるphp.ini-recommendedファイルをphp.iniにリネームします。
  2. Windowsのシステム環境変数「PATH」に、C:\phpを追加します。これは、PHPのコアDLLと拡張モジュール用の外部DLLを、Windowsのシステムフォルダではなく、C:\phpフォルダに置いておくために必要な設定です。
    Windowsのシステム環境変数を設定するには、例えばWindows XPの場合は、マイコンピュータをマウスの右ボタンでクリックして表示されるメニューから「プロパティ」を選ぶか、コントロールパネルの「システム」をダブルクリックして表示される「システムのプロパティ」で、「詳細設定」タブの「環境変数」ボタンをクリックします。表示される画面で、システム環境変数の項目の中から「PATH」を探し、現在の値に「C:\php」を付け加えてください。
  3. Apache 2.0.xのhttpd.confに以下の行を追加します。
    LoadModule php5_module c:/php/php5apache2.dll
    PHPIniDir "C:/php"
    AddType application/x-httpd-php .php
    肝は「PHPIniDir」ディレクティブで、この指定によって、php.iniをWindowsのシステムフォルダにコピーしないで、任意のフォルダに置いておくことができます。

必要な設定は以上です。Apache 2.0.xを起動し、phpinfoの「Configuration File (php.ini) Path」項目が「C:\php\php.ini」となっているか確認してみてください(phpinfoを表示するには、「<?php phpinfo() ?>」と書いた、拡張子が「.php」のファイルをApache 2.0.xの公開フォルダに作成し、ウェブブラウザでそのファイルのURLにアクセスします)。

PHP4のインストール

PHP4のインストール手順はPHP5とほぼ同じですが、フォルダの構成を、ZIPパッケージを展開した初期状態から若干変更する必要があります。

  1. Apache 2.0.xを停止し、PHP5をインストールしたC:\phpフォルダを、C:\php5にリネームします。
  2. 新たにC:\phpフォルダを作成し、PHP5の場合と同様に、PHP4のZIPパッケージ版をphp.netのダウンロードページからダウンロードして、C:\phpフォルダに展開し、php.ini-recommendedファイルをphp.iniにリネームします。
  3. C:\phpフォルダ内にある「dlls」フォルダと「sapi」フォルダ内の全てのファイルをC:\phpフォルダに移動し、空になった「dlls」フォルダと「sapi」フォルダは削除します。
  4. PHP5のインストールの際に追加したhttpd.confの行を、以下のように修正し、PHP4用のLoadModuleディレクティブを追加し、一方PHP5用のLoadModuleディレクティブをコメントアウトします。
    #LoadModule php5_module c:/php/php5apache2.dll
    LoadModule php4_module c:/php/php4apache2.dll
    PHPIniDir "C:/php"
    AddType application/x-httpd-php .php
    PHP4モジュールのパスが「c:/php/sapi/~」ではないことに注意してください。

必要な設定は以上です。Apache 2.0.xを起動し、phpinfoで、PHPのバージョンと「Configuration File (php.ini) Path」を確認してみてください。

PHP4とPHP5を切り替える

例えば、PHP4からPHP5に切り替えるには以下のようにします。

  1. Apache 2.0.xを停止し、C:\phpフォルダをC:\php4に、C:\php5フォルダをC:\phpに、それぞれリネームします。
  2. Apache 2.0.xのhttpd.confで、PHP4用のLoadModuleディレクティブとPHP5用のLoadModuleディレクティブのコメントを付け替えます。
  3. Apache 2.0.xを起動します。

なお、メジャーバージョンが同じPHP同士ならhttpd.confの修正は不要なので、フォルダのリネームとApache 2.0.xの再起動だけで切り替えられます。

Category: ウェブ制作
Posted 2005年10月20日 19:49

トラックバック

このエントリーのトラックバックURL:
http://www.rcdtokyo.com/mt/mt-rcdtokyo5428-tb.cgi/668

コメント

コメントをどうぞ



保存しますか?


Aoaka Style Valid Aoaka