サンプルアプリケーションの作成
それでは、Eclipse PDT+WindowsAzure4eを使用して、PHPによるWindows Azureアプリケーションを作成してみましょう。ここでも「Hello, world!」アプリケーションを作成してみます。
[1]新しいプロジェクトを作成する
[ファイル]メニューの[新規]続いて[Windows Azure Web Project]をクリックします。すると、[PHP Azure Project]ダイアログボックスが表示されます。[プロジェクト名]ボックスに任意のプロジェクト名(ここでは「PHPAzureSample」)を入力し、[Data Storage Options]は[なし]が選択されていることを確認し、[完了]ボタンをクリックします(図11)。
本文の手順では[PHP Azure Project]ダイアログボックスの[Data Storage Options]で[なし]を選択しましたが、代わりに、[SQL Azure]、[Windows Azure Data Storage]、[Windows Azure Data Storage & SQL Azure]のいずれかを選択できます。
表示名からも推測できるように、これらのオプションを選択すると、PHPアプリケーションからSQL AzureやWindows Azureストレージにアクセスするためのサンプルコードが自動生成されます。
すると、PHPAzureSampleとPHPAzureSample_WebRoleの2つの新しいプロジェクトが作成され、PHPエクスプローラーに表示されます(図12)。

プロジェクトの階層図を見ると、Visual StudioでWindows Azureクラウドサービスプロジェクトを作成してWebロールを1つ追加した時のプロジェクトの階層構造とよく似ていることが理解できるでしょう。
PHPAzureSampleプロジェクトは、クラウドサービスプロジェクトを意味しており、プロジェクト内にはサービス定義ファイル(ServiceDefinition.csdef)やサービス構成ファイル(ServiceConfiguration.cscfg)が自動生成されています。これらのXMLファイルを直接編集することもできますし、PHPエクスプローラーから[PHPAzureSample]クラウドサービスプロジェクトを右クリックし[プロパティー]をクリックして表示される[PHPAzureSampleのプロパティー]ダイアログボックスから設定することもできます(図13)。
PHPAzureSample_WebRoleプロジェクトは、名前のとおりWebロールプロジェクトです。プロジェクト内には、index.phpとWeb.configの2つのファイルが自動生成されています。既定のWeb.configでは、次のリスト4のように設定が記述されています。
<?xml version="1.0"?>
<configuration>
<system.webServer>
<!-- DO NOT REMOVE: PHP FastCGI Module Handler -->
<handlers>
<clear />
<add name="PHP via FastCGI"
path="*.php"
verb="*"
modules="FastCgiModule"
scriptProcessor="%RoleRoot%\approot\php\php-cgi.exe"
resourceType="Unspecified" />
<add name="StaticFile" path="*" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Read" />
</handlers>
<!-- Example WebRole IIS 7 Configation -->
<defaultDocument>
<files>
<clear />
<add value="index.php" />
</files>
</defaultDocument>
</system.webServer>
</configuration>
<handlers>タグ内で、FastCGIハンドラを定義し、PHPの実行ファイルを指定しています。そして、<defaultDocument>タグ内では、既定のドキュメントとしてindex.phpを指定しています。
[2]index.phpを修正する
自動生成されたindex.phpを開き、次のリスト5のように修正します(太字部分)。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Hello Windows Azure</title> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> </head> <body> <h1>Hello, world!</h1> <h2>PHP Information</h2> <p> <?php phpinfo(); ?> </p> <hr/> </body> </html>
ここでは、<h1>タグの内容を「Hello, world!」に変更しています。また、既定のindex.phpでは、phpinfo()関数によりPHPの各種設定情報が表示されるようになっています。
これで、サンプルPHPアプリケーションが完成しました。

![図11:[PHP Azure Project]ダイアログボックス](http://cz-cdn.shoeisha.jp/static/images/article/5518/5518_fig11.gif)
![図13:[PHPAzureSampleのプロパティー]ダイアログボックス](http://cz-cdn.shoeisha.jp/static/images/article/5518/5518_fig13.gif)