FastCGIを利用してPHPを実行

[小木] プロジェクト作成、PHPダウンロード、PHP設定。全て終わりました。さあ、次は何をしましょうか!

[田口] 頼もしいですね。では、続いてPHPをFastCGIで実行する設定と、「.php」で終わるURLのときにPHPプログラムとして処理されるようにハンドラマッピングを設定してください。

[小木] FastCGIとハンドラマッピングの設定ですね。やってみます!
FastCGI の設定
PHPをFastCGIとして実行するように設定を行います。Webロール構成ファイルWeb.roleconfigのfastCgiに php-cgi.exeを追加します。
5 | <application fullPath="%RoleRoot%\approot\php\php-cgi.exe" /> |
ハンドラマッピングの設定
「.php」を php-cgi.exeが処理するように設定ファイルWeb.configの handlers に設定を追加します。また、既定のドキュメントの設定に index.php を追加します。
04 | <compilation debug="true" targetFramework="4.0" /> |
08 | <modules runAllManagedModulesForAllRequests="true"/> |
10 | <add name="PHP Handler" |
13 | scriptProcessor="%RoleRoot%\approot\php\php-cgi.exe" |
14 | modules="FastCgiModule" |
15 | resourceType="Unspecified" /> |
21 | <add value="index.php"/> |

[小木] FastCGIとハンドラマッピングの設定が終わりました~。
Full IIS から HWCに変更

[田口] 最後にWeb ロールはデフォルトだとFull IIS と言われる通常のIISで動くのですが、今回は設定が簡単なIIS Webエンジンのコンポーネントを利用した HWC(ホスト可能なWebコア)を使うことにしましょう。

[小木] また難しそうなことを・・・

[田口] いやFull IIS から HWC に変更は簡単で、ServiceDefinition.csdef にある~の部分を削除するだけですよ。

[小木] おお、なんだ簡単に変更できるんですね。ServiceDefinition.csdefを修正して~を削除しました!
01 | <?xml version="1.0" encoding="utf-8"?> |
03 | <WebRole name="WebCgiRole1" enableNativeCodeExecution="true"> |
05 | <InputEndpoint name="Endpoint1" protocol="http" port="80" /> |
08 | <Import moduleName="Diagnostics" /> |
FastCGIを利用してPHPを実行

[田口] よくできました。これでPHPプログラムが動くようになりましたね。PHPの動作確認でよく使われるphpinfoを使って、PHPが動くか確認してみてください。問題なければ、環境設定情報が表示されます。

[小木] 了解です!じゃあ早速PHPプログラム作って実行してみます。
PHPプログラムの追加
[CGI Webロール]プロジェクトを右クリックして、[追加]-[新しい項目]を選択します。表示された [新しい項目の追加] ダイアログの左側(インストールされたテンプレート)で [Visual C#] を選択し、真ん中(項目)で [テキストファイル] を選択します。名前にindex.phpと入力して、[追加]ボタンをクリックします(画面16)。

|
画面16:プロジェクトにindex.phpを追加(クリックで拡大) |
作成したindex.php に下記のコードを記述します。
PHPプログラムの実行

[小木] 準備完了しましたので、デバッグ実行開始します。ブラウザで確認っと・・・、PHP環境情報表示されました!(画面17)

|
画面17:実行画面(index.php) |

[田口] これでPHPのアプリケーションを動かすことができますね。今日はこの辺にしましょう。お疲れさま。次回は、プログラムを本番環境で動かしてみましょう。

[小木] お疲れさまでした。次回から大変そうですね~。まあ…とりあえず、お茶飲みましょっか。
【参考文献】
PHP on IIS
PHP on Windows Azure ガイドライン
PHP公式サイト
<最終アクセス:2011.05>