書籍転載
Windows Azure 実践クラウド・プログラミング
for C#/Visual Basic/PHP

PHP+EclipseでWindows Azureアプリケーションを開発しよう
― Chapter 7 PHPによるWindows Azureアプリケーション開発(前編) ―

山田 祥寛
2010/08/18
Page1 Page2

PHP+Azureアプリケーションの基本

 最初に作成するのは、まず定番のHello, Worldアプリケーションです。

図7-11:入力された名前に応じて、挨拶メッセージを表示

[1]プロジェクトを新規に作成する

 プロジェクトを新規に作成するには、メニューバーから[ファイル]−[新規]−[Windows Azure Web Project]を選択します*13

*13 もしもメニューに該当する項目が表示されない場合は、[プロジェクト...]を選択して、[新規プロジェクト]ダイアログから[PHP]−[Windows Azure Web Project]を選択してください。

図7-12:[PHP Azure Project]ダイアログ

 [PHP Azure Project]ダイアログ(図7-12)が表示されますので、表7-2のように必要な情報を入力します。

項目 概要 設定値
プロジェクト名 プロジェクトの名前 AzurePhp
内容 プロジェクトの作成先 ワークスペース内に新規プロジェクトを作成
Data Storage Options どのストレージを利用するか Windows Azure Data Storage & SQL Azure
プロジェクト・レイアウト プロジェクトの構造 プロジェクトをソース・フォルダーとして使用
JavaScriptサポート JavaScriptライブラリを使用するか チェック
表7-2 [PHP Azure Project]ダイアログの入力値

 [Data Storage Options]は、プロジェクトの中でストレージサービス、SQL Azureにアクセスするかどうかを決定します。それぞれ該当する項目を有効にした場合、必要なライブラリ/拡張モジュールが有効化されます。これらの項目は、後からでも有効化できますが、邪魔になるものでもありませんので、プロジェクトの作成時に有効にしておくのが簡単でしょう。

【Note】プロジェクトの変換

 既存の標準PHPプロジェクトを、Azure対応プロジェクトに変換することもできます。これには、PHPエクスプローラで該当するプロジェクトを右クリックし、表示されたコンテキストメニューから[Windows Azure]−[Convert to Windows Azure PHP Project]を選択してください。

図7-13:[Azure Project setting]ダイアログ

 [Azure Project setting]ダイアログが表示されますので、[Data Storage Options]で「Windows Azure Data Storage & SQL Azure」を選択した上で、[OK]ボタンをクリックしてください*14

*14 ただし、この際、index.phpは上書きされます。既存のプロジェクトにindex.phpが含まれている場合には、あらかじめ退避させておくようにしてください。

[2]プロジェクトの内容を確認する

 [完了]ボタンをクリックすると、プロジェクトが作成されます。[関連付けられたパースペクティブを開きますか?]ダイアログが表示されるので[はい]ボタンをクリックしてください*15

*15 パースペクティブとは、Eclipseにおける画面レイアウト(表示するウィンドウやその表示位置)の定義セットのことです。Eclipseでは、プロジェクトにパースペクティブを関連付けることで、作業内容に応じて画面構成を切り替えることができます。

図7-14:PHP Azure Projectの初期状態

 PHPエクスプローラを確認すると、クラウドサービスプロジェクトとしてAzurePhpが、そして、WebロールとしてAzurePhp_WebRoleが作成されていることが確認できます。

 クラウドサービスプロジェクトの配下には、Visual Studioの時と同じく、サービス定義ファイル、サービス設定ファイルが配置されています。これらの構成ファイルは直接に編集することもできますが、PHPエクスプローラからクラウドサービスプロジェクトを右クリックし、表示されたコンテキストメニューから[プロパティ]を選択することで、プロパティシートから編集することもできます。たとえば、以下は[<プロジェクト名>のプロパティ]ダイアログから[Windows Azure]の[Service Definition]を選択した例です。

図7-15:[<プロジェクト名>のプロパティ]ダイアログ([Service Definition]メニュー)

 Visual Studioのプロパティシートとはやや異なりますが、項目の意味を理解していれば、おおよそ直感的に設定を編集することができるでしょう*16

 ロールプロジェクトの配下に含まれているのはほとんどがサンプルファイルですが、Microsoftフォルダ配下に含まれているのはストレージサービスにアクセスするためのライブラリです*17。構成ファイルであるweb.config共々、削除しないように気を付けてください。

*16 ただし、enableNativeCodeExecutionは無効にしないでください。これはネイティブコードを実行するための設定で、Azure上でPHPを動作する場合は必ず有効にしておかなければなりません(デフォルトは有効)。
*17 ストレージライブラリの詳細は、第3章、巻末資料 A(本転載では割愛)を参照してください。

[3]新規のスクリプトを作成する

 新規のスクリプトを作成するには、PHPエクスプローラから[AzurePhp_WebRole]を選択した状態で、メニューバーから[ファイル]−[新規]−[PHPファイル]を選択します。

図7-16:[新規PHPファイル]ダイアログ

 [新規PHPファイル]ダイアログが開きますので、適当なファイル名を入力した上で、[完了]ボタンをクリックします。ここでは、MyLib.php、Hello.phpを作成し、リスト7-1、7-2の要領でコードを記述してください*18

*18 MyLib.phpは、アプリケーション共通で利用していくライブラリです。以降、このファイルに対しては、適宜、必要な関数を追記していきます。

<?php
// 与えられた文字列をHTMLエンコード処理
function e($str, $charset = 'UTF-8') {
  print htmlspecialchars($str, ENT_QUOTES, $charset);
}
リスト7-1 MyLib.php

<?php require_once 'MyLib.php'; ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html>
<head>
<meta http-equiv="Content-Type"
  content="text/html; charset=utf-8">
<title>Azureアプリの基本</title>
</head>
<body>
<!--自分自身にポストデータを送信-->
<form method="post" action="">
  名前:
  <input type="text" name="name" size="10" />
  <input type="submit" value="送信" />
</form>
<!--[名前]欄に入力があった場合のみメッセージを出力-->
<?php if(isset($_POST['name'])) { ?>
  こんにちは、<?php e($_POST['name']); ?>さん!
<?php } ?>
</body>
</html>
リスト7-2 Hello.php

 リスト7-1、7-2の内容は、特にAzure固有の内容は含んでいませんので、解説は割愛します。PHPそのものについてきちんと学習したい方は、拙著「独習PHP 第2版」(翔泳社)などを参照してください。

[4]開発ファブリックでデバッグ実行する

 それではさっそく、アプリケーションを開発ファブリックで動作してみましょう。開発ファブリックを起動するには、PHPエクスプローラからロールプロジェクトを右クリックし、表示されたコンテキストメニューから[Windows Azure]−[Run in Development Fabric]を選択してください*19。開発ファブリックとブラウザが起動し、図7-17のようなトップページが表示されます。

*19 自動でファイルの保存は行われませんので、編集中のスクリプトは実行前に保存するのを忘れないようにしてください。

図7-17:PHP Azureプロジェクトのトップページ

 開発ファブリックの動作を確認するには、P.28(本転載では割愛。参考:「TIPS:Windows Azureアプリケーションを開発するには?(環境設定)」)で解説したのと同じく、タスクトレイから(開発ファブリック)を右クリックし、表示されたコンテキストメニューから[Show Development Fabric UI]を選択してください。これまでと同じく、開発ファブリックの管理コンソールを表示させることができます。

[5]クラウド環境にプロジェクトを発行する

 続いて、クラウド環境にプロジェクトを発行します。プロジェクトを発行するには、クラウドサービスプロジェクトを右クリックし、表示されたコンテキストメニューから[Windows Azure]−[Publish Application to Windows Azure Portal]を選択してください。

 ポータルサイトが開き、同時に配置のためのパッケージファイルとサービス設定ファイルが作成されますので、P.31(本転載では割愛。参考:「TIPS:Windows AzureアプリケーションをVisual Studioからデプロイするには?」)と同じ要領でポータルサイトにアップロードすることができます。

図7-18:作成されたパッケージファイル

【Note】php.iniを編集する

 拡張モジュールを追加するなどの目的で、php.iniを編集したいということはよくあるはずです。その場合には「<プロジェクトルート*20>\ServiceDefinition.csx\roles\WebRole\approot\php」配下からphp.iniを編集することができます。

 ただし、ServiceDefinition.csxは開発ファブリックで一度デバッグ実行を行った後でないとできませんので、注意してください。

*20 本書の例では「C:\pleiades\xampp\htdocs\AzurePhp」です。

 次回はブロブストレージ利用の基本について説明します。End of Article


 INDEX
  [書籍転載]Windows Azure 実践クラウド・プログラミング for C#/Visual Basic/PHP
  PHP+EclipseでWindows Azureアプリケーションを開発しよう
    1.WindowsAzure4eのインストール
  2.PHP+Azureアプリケーションの基本

インデックス・ページヘ 「Windows Azure 実践クラウド・プログラミング for C#/Visual Basic/PHP」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間