Windows XP と Windows Server 2003 で PHP5 を動かす
IIS 7 ( Windiws Server 2008, Windows Vista ) より FastCGI が機能の一部として搭載され、PHP アプリケーションをより簡単に効率よく実行できるようになりました。
このような背景もあり、FastCGI は、Windows Server 2003 や Windows XP といった Old Windows では動作しないと思われがちですが、そうではありません。
FastCGI には、IIS 6.0 ( Windows Server 2003 ) と IIS 5.1 ( Windows XP ) 用のモジュールが用意されており、これを使用することで、前出の 2 つの Old Windows 上でも PHP アプリケーションを効率よく実行することができます。
Old Windows 上の Old IIS に FastCGI をインストールするには、Web Platform Installer を使用することがもっとも簡単で確実な方法ですが、なんらかの事情により WebPI が使用できない方もいらしゃると思います。
今回はそのような状況を鑑み、IIS 6.0、IIS 5.1 に手動で FastCGI をインストールし、PHP アプリケーションを動作させるまでの手順を紹介します。
準備
FastCGI のインストール msi と、PHP のランタイムを以下の URL から入手してください。
『FastCGI for IIS』
https://www.iis.net/download/FastCGI
『PHP For Windows: Binaries and sources Releases』
https://windows.php.net/download/
ダウンロードするファイルは VC9 x86 Non Thread Safe の Zip 形式のファイルが良いでしょう。FastCGI はプロセスモデルで動作するので、スレッド管理をしない高速に動作するほうの PHP ランタイムを使用できるのです。
PHP ランタイムは、ダウンロードしたら中身を適当なフォルダに解凍します。
次に、ランタイムを解凍したフォルダに対し、ローカル ユーザー アカウント IUSR_マシン名 に “読み取り” の権限を付与 (※) します。
(※) Windows XP ドメインに参加させずに使用している場合、フォルダのプロパティダイアログボックスに [セキュリティ] タブが表示されずアクセス権が設定できない場合があります。その場合は、Windows の [コントロール パネル] から [フォルダ オプション] を起動し、[表示] タブ内のリストで [エクスプローラーに簡易フォルダ表示を使用する] のチェックを外してください。
FastCGI セットアップ msi ファイルの実行
ダウンロードした FastCGI セットアップ用のファイルを以下の手順で実行します。
コマンドプロンプト をオープンします。
CD コマンドを使用して、作業ディレクトリをダウンロードした FasiCGI の msi ファイル (fcgisetup_1.5_rtw_x86.msi ) に変更します。
以下のコマンドを実行します。
msiexec /I fcgisetup_1.5_rtw_x86.msi インストールウィザードが表示されるので、ガイダンスに従い [Next] ボタン、[Finish] ボタン、[Install] ボタンをクリックし、ウィザードを完了します。
コマンドプロンプトでから CD コマンドを使用して C:\windows\system32\inetsrv に作業ディレクトリを変更します。
cd C:\windows\system32\inetsrv 以下のコマンドを実行します。
cscript fcgiconfig.js -add -section:"PHP" -extension:php -path:"ダウンロードした php ランタイムの php-cgi.exe までのパス"
以上で FastCGI のインストールと、PHP ランタイムの指定は完了です。
PHP アプリケーションの動作テスト
以下の手順で PHP のコードが正しく実行できるか確認します。
テキストエディタを起動して以下のタグを記述し、info.php という名前を付けて保存します
<?php phpinfo(); ?> パス %system drive%\inetpub\wwwroot の下に phpApp という名前でフォルダを作成します
作成したフォルダ phpApp に ファイル info.php を配置します。
Web ブラウザから以下の URL にアクセスし、PHP ランタイムの情報画面が表示されることを確認します。
https://localhost/phpApp/info.php
なお、より詳細な情報、インストールスクリプト ( fcgiconfig.js ) を使用しない、完全なる手動での方法につきましては、以下のドキュメントを参照してください。(※というか、ブログの記事をほぼ書き終えたところで、このような詳しい日本語のドキュメントがあることを知った…….Orz )
『FastCGI を使用した IIS 6 での PHP アプリケーションのホスト』
https://technet.microsoft.com/ja-jp/library/ff454028.aspx
お近くにバージョンアップの予定のない Old Windows マシンがありましたら FastCGI + PHP + OSS Web アプリケーションで、新たな役割を加えてみるのもいいかもしれませんね。
もっとも、その場合は WebPI を使用したほうが圧倒的に便利なワケですが…。
Comments
- Anonymous
September 21, 2010
さて、IS7 への FastCGI 搭載以降、PHP ランタイムを使用する方法については語られることが多いのですが、実は PHP の .NET コンパイラの開発もコミニュティで続いていたりします。 Phalanger - The PHP Language Compiler for the .NET Framework http://phalanger.codeplex.com/