AzureでPHPって動くんですか?

FastCGIを利用してPHPを実行

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

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

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

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

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

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

[田口] いやFull IIS から HWC に変更は簡単で、ServiceDefinition.csdef にある

[小木] おお、なんだ簡単に変更できるんですね。ServiceDefinition.csdefを修正して
<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="WindowsAzureProject2" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
<WebRole name="WebCgiRole1" enableNativeCodeExecution="true">
<Endpoints>
<InputEndpoint name="Endpoint1" protocol="http" port="80" />
</Endpoints>
<Imports>
<Import moduleName="Diagnostics" />
</Imports>
</WebRole>
</ServiceDefinition>
FastCGIを利用してPHPを実行

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

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

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

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

[小木] お疲れさまでした。次回から大変そうですね~。まあ…とりあえず、お茶飲みましょっか。
【参考文献】
<最終アクセス:2011.05>
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- AzureでPHPって動くんですか?
- WS2008 R2と最新OS Azureでのサーバー構築
- Azureにソフトをインストールしてみよう
- はじめてのWindows Azure Accelerator for Web Roles
- Worker RoleでWebアプリケーションを動かしてみよう
- サーバー構築とOSSのインストール
- Azureにソフトをインストールしてみよう
- Windows Web Server 2008 構築と運用のポイント
- Worker RoleでWebアプリケーションを動かしてみよう
- PHPとMySQLが利用できるWebサイトを、Windows Azureを使って手軽に作ってみよう



