SHOEISHA iD

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

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

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

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

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

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

サンプルアプリケーションの作成

 それでは、Eclipse PDT+WindowsAzure4eを使用して、PHPによるWindows Azureアプリケーションを作成してみましょう。ここでも「Hello, world!」アプリケーションを作成してみます。

[1]新しいプロジェクトを作成する

 [ファイル]メニューの[新規]続いて[Windows Azure Web Project]をクリックします。すると、[PHP Azure Project]ダイアログボックスが表示されます。[プロジェクト名]ボックスに任意のプロジェクト名(ここでは「PHPAzureSample」)を入力し、[Data Storage Options]は[なし]が選択されていることを確認し、[完了]ボタンをクリックします(図11)。

図11:[PHP Azure Project]ダイアログボックス
図11:[PHP Azure Project]ダイアログボックス
【コラム】[SQL Azure]と[Windows Azure Data Storage]の各オプション

 本文の手順では[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)。

図12:新規作成された2つのプロジェクトの階層図
図12:新規作成された2つのプロジェクトの階層図

 プロジェクトの階層図を見ると、Visual StudioでWindows Azureクラウドサービスプロジェクトを作成してWebロールを1つ追加した時のプロジェクトの階層構造とよく似ていることが理解できるでしょう。

 PHPAzureSampleプロジェクトは、クラウドサービスプロジェクトを意味しており、プロジェクト内にはサービス定義ファイル(ServiceDefinition.csdef)やサービス構成ファイル(ServiceConfiguration.cscfg)が自動生成されています。これらのXMLファイルを直接編集することもできますし、PHPエクスプローラーから[PHPAzureSample]クラウドサービスプロジェクトを右クリックし[プロパティー]をクリックして表示される[PHPAzureSampleのプロパティー]ダイアログボックスから設定することもできます(図13)。

図13:[PHPAzureSampleのプロパティー]ダイアログボックス
図13:[PHPAzureSampleのプロパティー]ダイアログボックス

 PHPAzureSample_WebRoleプロジェクトは、名前のとおりWebロールプロジェクトです。プロジェクト内には、index.phpとWeb.configの2つのファイルが自動生成されています。既定のWeb.configでは、次のリスト4のように設定が記述されています。

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

[リスト5]PHPファイルの修正(index.php)
<!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アプリケーションが完成しました。

次のページ
参考資料

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

正式リリースされた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」など、さまざまなカンファレンスを企画・運営しています。

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

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

メールバックナンバー