Visual Studioによる開発
最初に、Visual Studioを使用した開発方法について解説します。
Windows Azure Tools for Microsoft Visual StudioをインストールしたVisual StudioまたはVisual Web Developerにより、簡単にFastCGI対応のWebロールを作成できます。
開発環境を整える
前回までの記事で使用してきた環境と同じです。前回の記事の「開発環境の整備」を参照して、Windows Azureの開発環境を整えてください。
サンプルアプリケーションの作成
それでは、Visual Studioを使用して、PHPによるWindows Azureアプリケーションを作成してみましょう。ここはお決まりの「Hello, world!」アプリケーションを作成してみます。
次の手順で、Visual Studio上でFastCGIによるPHPアプリケーションを開発するため環境を構築します。
[1]新規プロジェクト作成時に、FastCGI対応Webロールを追加する
新しいプロジェクトを作成します。[新しいプロジェクト]ダイアログボックスで、[インストールされたテンプレート]の一覧から[Visual C#]内の[Cloud]をクリックし、右側のテンプレートの一覧から[Windows Azureクラウドサービス Visual C#]をクリックします。プロジェクト名に「PHPAzureSample」と入力し[OK]ボタンをクリックします。
表示された[新しいクラウドサービスプロジェクト]ダイアログボックスで、左側の[.NET Framework 4 ロール]の一覧の[Visual C#]内にある[CGI Webロール]をクリックし、真ん中にある[>]ボタンをクリックします。すると、右側の[クラウド サービス ソリューション]の一覧に[WebCgiRole1]の項目が追加されます。最後に[OK]ボタンをクリックします(図1)。これにより、FastCGIアプリケーションをホストするWebロールを作成できます。
![図1:[新しいクラウドサービスプロジェクト]ダイアログボックス](http://cz-cdn.shoeisha.jp/static/images/article/5518/5518_fig1.gif)
[2]Webロール内にPHP環境を配置する
FastCGIアプリケーションは、CGI Webロールのルートかサブフォルダに配置する必要があります。
まず、公式サイトから、PHPのWindows用バイナリをダウンロードします。本稿では、php-5.3.3-nts-Win32-VC9-x86.zipを使用します。
ダウンロードしたzipファイルを展開し、「php」のような短く分かりやすいフォルダ名に変更します。そして、フォルダ内のphp.ini-developmentをコピーし、コピーしたファイル名を「php.ini」に変更します。必要に応じてphp.iniを修正しますが、ここでは既定のまま使用します。
次に、ソリューションエクスプローラーの[WebCgiRole1]Webロール上に、[php]フォルダをドラック&ドロップします(図2)。
![図2:[php]フォルダをドラック&ドロップ](http://cz-cdn.shoeisha.jp/static/images/article/5518/5518_fig2.gif)
[3]Web.configを修正する
Webロール内のWeb.configを開いてFastCGIハンドラーのコメントを解除し、次のリスト1のように修正します(太字部分)。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<handlers>
<add name="FastGGI Handler"
verb="*"
path="*.php"
scriptProcessor="%RoleRoot%\approot\php\php-cgi.exe"
modules="FastCgiModule"
resourceType="Unspecified" />
</handlers>
</system.webServer>
</configuration>
[4]Web.roleconfigを修正する
Webロール内のWeb.roleconfigを開いてFastCGIアプリケーション定義のコメントを解除し、次のリスト2のように修正します(太字部分)。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<fastCgi>
<!-- クラウド サービス プロジェクトの対応する Web ロールで、"完全信頼を有効
にする" プロパティを true に設定します。
-->
<application fullPath="%RoleRoot%\approot\php\php-cgi.exe" />
</fastCgi>
</system.webServer>
</configuration>
さらに、Web.roleconfigの1番目のコメントにあるように、PHPAzureSampleクラウドサービスプロジェクトの[ロール]フォルダ内のWebCgiRole1のプロパティ設定で、
さらに、Web.roleconfigの1番目のコメントに記述されている点を確認します。ソリューションエクスプローラーで、[PHPAzureSample]クラウドサービスプロジェクト内の[ロール]フォルダ内にある[WebCgiRole1]を右クリックし、[プロパティ]をクリックします。表示された[WebCgiRole1]のプロパティページ内の[構成]タブ内にある[.NET信頼レベル]プロパティの値が既定値の[完全信頼]になっていることを確認します(図3)。
![図3:[WebCgiRole1]プロパティページ](http://cz-cdn.shoeisha.jp/static/images/article/5518/5518_fig3.gif)
[5]PHPファイルを新規作成する
最後にPHPのプログラムを作成します。
ソリューションエクスプローラーで、[WebCgiRole1]Webロールを右クリックし[追加]の[新しい項目]をクリックします。表示された[新しい項目の追加]ダイアログボックスで、[インストールされたテンプレート]の一覧から[Visual C#]内の[全般]をクリックし、右側のテンプレートの一覧から[テキストファイル]をクリックします。[名前]ボックスに「hello.php」と入力し[追加]ボタンをクリックします(図4)。
表示されたhello.phpに、次のリスト3のようにコードを追加します(太字部分)。単純に「Hello, world!」と出力するだけのPHPプログラムです。
<?php echo "Hello, world!"; ?>
これで、Windows Azureで動作するPHPサンプルアプリケーションが完成しました。
開発環境での実行
それでは、サンプルを開発環境で実行してみましょう。開発環境でAzureアプリケーションを実行するためには、管理者権限でVisual Studioを起動しておく必要があります。
ソリューションをビルドし[PHPAzureSample]クラウドサービスプロジェクトを開始します。
しばらくすると、タスクトレイ上で開発ファブリック(Development Fabric)と開発ストレージ(Development Storage)が起動し、さらに既定のブラウザが起動します。アドレスバーで「hello.php」と入力すると「Hello, world!」が表示されます(図5)。

クラウド環境への配置方法は前回までの記事で述べた方法と同じです。前回の記事の「クラウド環境への配置」を参照ください。

![図4:[新しい項目の追加]ダイアログボックス](http://cz-cdn.shoeisha.jp/static/images/article/5518/5518_fig4.gif)