SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine(コードジン) DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

正式リリースされたWindows Azureの力

PHPによるWindows Azureアプリケーション開発

正式リリースされたWindows Azureの力(5)

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:[新しいクラウドサービスプロジェクト]ダイアログボックス
図1:[新しいクラウドサービスプロジェクト]ダイアログボックス
[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]フォルダをドラック&ドロップ
図2:[php]フォルダをドラック&ドロップ
[3]Web.configを修正する

 Webロール内のWeb.configを開いてFastCGIハンドラーのコメントを解除し、次のリスト1のように修正します(太字部分)。

[リスト1]Web.configの修正
<?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のように修正します(太字部分)。

[リスト2]Web.roleconfigの修正
<?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]プロパティページ
図3:[WebCgiRole1]プロパティページ
[5]PHPファイルを新規作成する

 最後にPHPのプログラムを作成します。

 ソリューションエクスプローラーで、[WebCgiRole1]Webロールを右クリックし[追加]の[新しい項目]をクリックします。表示された[新しい項目の追加]ダイアログボックスで、[インストールされたテンプレート]の一覧から[Visual C#]内の[全般]をクリックし、右側のテンプレートの一覧から[テキストファイル]をクリックします。[名前]ボックスに「hello.php」と入力し[追加]ボタンをクリックします(図4)。

図4:[新しい項目の追加]ダイアログボックス
図4:[新しい項目の追加]ダイアログボックス

 表示されたhello.phpに、次のリスト3のようにコードを追加します(太字部分)。単純に「Hello, world!」と出力するだけのPHPプログラムです。

[リスト3]hello.phpの修正
<?php echo "Hello, world!"; ?>

 これで、Windows Azureで動作するPHPサンプルアプリケーションが完成しました。

開発環境での実行

 それでは、サンプルを開発環境で実行してみましょう。開発環境でAzureアプリケーションを実行するためには、管理者権限でVisual Studioを起動しておく必要があります。

 ソリューションをビルドし[PHPAzureSample]クラウドサービスプロジェクトを開始します。

 しばらくすると、タスクトレイ上で開発ファブリック(Development Fabric)と開発ストレージ(Development Storage)が起動し、さらに既定のブラウザが起動します。アドレスバーで「hello.php」と入力すると「Hello, world!」が表示されます(図5)。

図5:Visual StudioによるPHPサンプルアプリケーションの実行画面
図5:Visual StudioによるPHPサンプルアプリケーションの実行画面

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

次のページ
Eclipse PDT+Windows Azure Tools for Eclipse(WindowsAzure4e)による開発

この記事は参考になりましたか?

正式リリースされたWindows Azureの力連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 広瀬 嘉久(株式会社ジェイテックジャパン)(ヒロセ ヨシヒサ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/5518 2010/11/01 14:00

おすすめ

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー