Freigeben über


WebMatrix で 複数バージョンの PHP ランタイムを共存させる方法

こんにちは。既にニュースなどでご存じの方もいらっしゃるかと思いますが、WebMatrix のベータ2 がリリースされました。ASP.NET 関連の変更が多くされております(詳しくはこちらをクリック)が、PHP ラインタイムのインストール方法が変更されています。

  ベータ1 ベータ2
PHP 展開先 %ProgramFiles%\PHP %ProgramFiles%\IISExpress8\PHP\v5.x
PHP ランタイム場所 php.net sourceforge.net
PHP インストール方法 インストーラー使用 zip ファイルを展開

PHP ランタイムのインストール方法の変更により、WebMatrix 上で 複数バージョンの PHP ランタイムを共存させることが可能です。そこで、今回は WebMatrix ベータ 2 で PHP ラインタイムを共存させて、アプリごとに PHP のバージョンを設定する方法を紹介します。


ステップ 1: PHP ランタイムのインストール

WebMatrix ベータ 2 では、PHP 5.2.14 と PHP 5.3.3 がインストールできるようになっていますが、現在は PHP 5.2.14 のみが OSS アプリのインストールの際に自動でインストールされるようになっています。手動でインストールも可能ではありますが、時間短縮のために OSS アプリケーションと PHP 5.2.14 をインストールします。

(1) WebMatrix ベータ 2 を起動します。そして、「Site From Web Gallery」(赤枠のところ)をクリックします。

image

(2) PHP の OSS アプリを選択します。今回は「WordPress (英語版)」を選択します。そして、「Site Name」の名前を確認(今回は「WordPress」)し、「Next」ボタンを選択します。

image

(3) インストールされるソフトウェアのリストが表示されます。ソフトウェアの使用許諾の確認と「PHP 5.2.14 for WebMatrix」がインストールされる事を確認のうえ、「I Accept」ボタンをクリックしてください。インストールが開始します。

image

(4) MySQL の設定ダイアログが開きますので入力してインストールを進めるとインストール結果が表示されます。下のように表示されていればインストールは完了です。「OK」ボタンを押してください。

image

続いて PHP 5.3.3 をインストールします。今のところ WebMatrix から自動インストールはできないので、手動で行います。

(5) WebMatrix でインストールされる PHP ランタイムの情報は、下記の XMLファイルに記述されています。

(XMLファイル URL) https://www.microsoft.com/web/webpi/3.0/webproductlist.xml

この XML ファイルをメモ帳や Visual Studio などのエディターで開いてみると、WebMatrix 用の PHP 5.3.3 のファイルの場所と展開先は下記である事がわかります。

(ファイルの場所) こちらをクリックしてください。

(展開先)%ProgramFiles%\IISExpress8\PHP\v5.3

上記リンクをクリックして php-5.3.3-nts-Win32-VC9-x86.zip をダウンロードしてから ZIPファイルを解凍してください。そして、解凍したフォルダ名を 「v5.3」に変更してから %ProgramFiles%\IISExpress8\PHP\ にフォルダごと移動します。

%ProgramFiles%\IISExpress8\PHP\ が下図のように 「v5.2」と「v5.3」のフォルダが存在していれば作業は完了です。

image


ステップ 2: applicationhost.config の設定を行う

WebMatrix の Web サーバーは IIS Express ですが、この設定ファイルである「applicationhost.config」を編集することで PHP 5.2.14 と PHP 5.3.3 を アプリケーションごとに設定する事ができます。なお、「applicationhost.config」は XML で記述されていますので、編集は簡単に行えます。

(1) フォルダ「マイドキュメント」→「IISExpress」→「config」にある「applicationhost.config」をメモ帳や Visual Studio などのエディターで開きます(今回は Visual Studio 2010 で開きます)。

image

(2) 「applicationhost.config」の <configuration> タグ→ <system.webServer> タグの中に <fastCgi> タグがあります。ここに PHP 5.2.14 についての記述がありますので、コピー&ペーストしてください(”php-cgi.exe” で検索すると簡単に探せます)。

そして、手動でインストールした PHP 5.3.3 のファイルパスに書き換えます(2箇所あります)。下記のようになっていれば大丈夫です。

<fastCgi> <application fullPath="C:\Program Files\IISExpress8\PHP\v5.2\php-cgi.exe" monitorChangesTo="php.ini" activityTimeout="600" requestTimeout="600" instanceMaxRequests="10000"> <environmentVariables> <environmentVariable name="PHP_FCGI_MAX_REQUESTS" value="10000" /> <environmentVariable name="PHPRC" value="C:\Program Files\IISExpress8\PHP\v5.2" /> </environmentVariables> </application>

  <application fullPath="C:\Program Files\IISExpress8\PHP\v5.3\php-cgi.exe" monitorChangesTo="php.ini" activityTimeout="600" requestTimeout="600" instanceMaxRequests="10000"> <environmentVariables> <environmentVariable name="PHP_FCGI_MAX_REQUESTS" value="10000" /> <environmentVariable name="PHPRC" value="C:\Program Files\IISExpress8\PHP\v5.3" /> </environmentVariables> </application> </fastCgi>

(3) <configuration> タグ→ <location path="" overrideMode="Allow"> タグ→ <system.webServer> タグの中に <handlers> タグがあります。ここに PHP 5.2.14 についての記述があります(”php-cgi.exe” で検索すると簡単に探せます)。こちらも同様にコピー&ペーストして、手動でインストールした PHP 5.3.3 のファイルパスに書き換えます(1箇所あります)。

<add name="PHP52_via_FastCGI" path="*.php" verb="GET,HEAD,POST" modules="FastCgiModule" scriptProcessor="C:\Program Files\IISExpress8\PHP\v5.2\php-cgi.exe" resourceType="Either" />

<add name="PHP53_via_FastCGI" path="*.php" verb="GET,HEAD,POST" modules="FastCgiModule" scriptProcessor="C:\Program Files\IISExpress8\PHP\v5.3\php-cgi.exe" resourceType="Either" />

以上で WebMatrix 上に PHP 5.2.14 と PHP 5.3.3 を共存させる作業は終了です。あとはアプリケーションごとに PHP ランタイムのバージョンを指定します。

(4) 例として、今回インストールした WordPress を動作させる PHP ランタイムのバージョンを指定します。

<configuration> タグ→ <location path="WordPress"> タグ→ <system.webServer> タグの中に <handlers> タグがあります( location タグの path の値はWordPress をインストールした時の 「Site Name」の名前になっています)。今回インストールした WordPress を PHP 5.2.14 で動作させたい場合は下記の赤字の箇所を「v5.2」、PHP 5.3.3 で動作させたい場合は、下記の赤字の箇所を「v5.3」に変更します。

<add name="PHP via FastCGI" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="C:\Program Files\IISExpress8\PHP\v5.2\php-cgi.exe" resourceType="Either" />

以上で作業は完了です。もし PHP ランタイムのバージョンを確認する場合には下記の記述を書いた PHP ファイル (例: test.php)を作成して WordPress インストール先のフォルダに格納してからブラウザから参照すると動作している PHP のバージョンを確認することができます。

<?php phpinfo(); ?>

 ■PHP 5.2.14 の場合

image

■PHP 5.3.3 の場合

image

いかがでしたでしょうか?まだ WebMatrix を試していない方はこの機会にぜひインストールしてみてください。

武田正樹

* この記事は 2010 年 10 月 8 日(金)時点の情報をもとに書いております。