今度は、FastCGI にて PHP を利用できるようにしてみたいと思います。
PHPについては、以前のIISでも ISAPI Module などによって動作させることは可能でしたが、今回の IIS FastCGI Module を利用することでより高パフォーマンスで動作させることができますので、是非導入したいところです。
IIS6やVista環境でもIIS FastCGIは動作可能だったかと思いますが、私の環境ではなぜか今まで無事動いたことはなかったので、リベンジの意味も込めて再度・・・。
すでに、役割の追加で CGI を選択し、IIS への FastCGI の導入は完了しているので、ここでは PHP が動作するまでの過程をご紹介したいと思います。
まずは、PHP のバイナリを入手します。PHP のサイト よりダウンロードしてください。
ダウンロードページに、Windows Binaries ということで、いくつかリストされていますが、今回は最新版の PHP 5.2.9-2 zip package を利用したいと思います。
実は、このスキルチャージプログラムで送付されてきた書籍にあるように、最初は Installer 版 (MSI) を試したのですが、Extension なしの状態では動作するものの、Extensionをインストーラで選択してから実行したところ、まともに動作しなくなったということと、インストーラ版の場合、Extension まわりの DLL がインストーラで選択したものしかインストールされないため、後で Extension の無効化/有効化が面倒だという点で、ZIPパッケージをお勧めします。
書籍の説明があまりにも不十分なところにムカつきつつ、「まぁ、IIS の書籍なので、PHP 導入に関して、詳しく書いてもなぁ」なんて変な納得もしつつ・・・。
では、PHPの導入編。
まずはダウンロードしてきたZIPパッケージを任意のフォルダに展開します。私の場合は、Cドライブの直下に PHP という名前のフォルダに展開しました。
次に、展開された PHP フォルダ内に、php.ini-dist というファイルがあるので、こちらをリネームもしくはコピーして php.ini というファイルを作成します。
この php.ini をメモ帳などで開き、以下のエントリーを変更します。(行頭が;(セミコロン)でコメントアウトされている場合は、コメントインして有効化します)
[変更箇所]
-
-
-
fastcgi.impersonate = 1
-
extension_dir = "./ext"
Extension を利用する場合は、コメントアウトされている、extension=php_gd2.dll などの行より、必要な Extension のコメントを外して有効化してください。
使用頻度の高いものでは、php_gd2.dll 、php_mbstring.dll 、php_mssql.dll 、php_mysql.dll あたりでしょうか。
php.ini ファイルの設定が完了したら、IIS のハンドラマッピングを行って、PHP という拡張子と php の実行ファイルを関連付けます。
IIS マネージャを開き、コンピュータのルートをクリックすると機能ビューに、ハンドラマッピングのアイコンがあると思いますので、これをダブルクリックで開きます。
ハンドラ マッピングが開いたら、右の操作パネルより、 「モジュールマップの追加」をクリック。
以下のように、拡張子 PHP に対し実行可能ファイル php-cgi.exe への関連付けを入力し、OKボタンを押します。
以下のダイアログが表示されたら、OKボタンを押します。
以上で、PHP が FastCGI アプリケーションとして動作させるための準備が整いましたので、次に動作確認を行います。
適当な仮想フォルダを作成し、以下のような PHP ファイルを置いてみましょう。
ファイル名: info.php
<?php phpinfo(); ?>
ファイルを置いたら、実行してみましょう。私は、仮想フォルダ /php を設定し、実行してみました。
このように PHP の情報が表示されたら、とりあえずはOKです。
ざっと下のほうを確認すると、php.ini を編集して組み込んだ、mbstring や、mssql などの Extension も利用可能となっていることがここでわかります。
ここまではありきたりなので、時間を見つけて一般的な PHP アプリケーションの動作確認なんかも行ってみたいと思いますが、設定編は以上ということで。