【3/18〜】Amazon、VMwareが語る『クラウドの未来』 スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷

特集:PHP on Windows Azure

PHP開発者もクラウド開発を始めよう!

デジタルアドバンテージ 一色 政彦
2009/07/28
Page1 Page2 Page3 Page4

 2009年7月16日、Webデザイナ/Web開発者向けのイベント「ReMIX Tokyo 09」が東京ミッドタウン・ホールにて開催され、新登場したSilverlight 3や、マイクロソフトのクラウド・プラットフォームと絡めたWeb開発などのセッションが開かれた。その中でも、今回レポートするのは「Silverlight + PHP (FastCGI) + Windows Azure で作る初めてのクラウド アプリケーション」というセッションだ。

 セッションの前半では、Windows Azure Platform(従来は「Azure Services Platform」と呼ばれていた)の概要やWindows Azureでの基本的な開発/運用方法が、マイクロソフトの関田文雄氏から説明された。Windows Azureでは、.NETだけでなく、PHP、Python、Rubyなどの言語でも開発できる。

 関田氏によると、「実はPHPやPythonもVisual Studio(無償のWeb Developerを含む)を使うことができる」という。通常の.NET開発とPHPなどの他開発の環境の違いを、関田氏は次のスライドを使って説明した。

通常の.NET開発とPHPなどの他開発の環境の違い(右下は関田氏)

 セッションの後半では、関田氏の説明内容を踏まえ、Windows Azure上に乗せるPHPアプリケーションの開発手順のデモや開発時のポイントが、アシアルの亀本大地氏から説明された。アシアルは、Visual Studio内で動作するWindows用PHP開発環境「VS.Php」などを販売しており、PHP開発に詳しい企業だ。

デモを行う亀本氏

 本稿では、後半のPHP開発のパートを取り上げ、セッション内で説明された内容を紙面で再現する。なお、Windows Azure自体の基本的な使い方は「特集:Windows Azure開発入門」を参考にしてほしい。以下、「アプリケーション」は「アプリ」と略す。

PHP開発でWindows Azureを利用する理由

 そもそもWindows Azureというマイクロソフト技術を基盤としたクラウド・プラットフォーム上で、非マイクロソフトでオープンソースのPHP開発を行うメリットはどこにあるのだろうか?

 これについて亀本氏は、「PHPでは、これまでに数多くのオープンソースのWebアプリ(例えばWordPressやPukiWikiなど)が作成されてきており、企業としても既存の資産が生かしやすいこと」を理由として挙げた。さらに、「確かにWindowsサーバ上にPHPアプリを乗せる事例は、Linuxの例ほど多くはない。しかしWindowsサーバを使うことで、社内ネットワーク環境をWindowsプラットフォームに統一でき、これにより運用・管理コストを減らせる」と語った。それがクラウドOSのWindows Azureともなれば、Windowsサーバの運用・管理はほぼ自動化されるので、システム開発企業は「アプリ開発だけに集中できるようになる」(亀本氏)というわけだ。

 さらに、亀本氏が考える「PHP開発でWindows Azureを採用するメリット」として大きいのは、「SQL Azure」(以前は「SQL Services」と呼ばれていた)だという。「RDBMS(リレーショナル・データベース管理システム)のデータベースをクラウドでも使えるので、既存のアプリをシームレスにクラウド上に乗せられる」(亀本氏)からだ。

 セッションでは、以上の話を前置きとして、具体的なPHP開発のデモンストレーションが行われた。以降では、その内容をひととおり再現していこう。

 なお、ReMIX Tokyo 09後の7月21日にWindows Azure開発環境の新版(CTP 2009年7月版)がリリースされたので、本稿ではその最新開発環境を用いている。そのため、実際のデモとは異なる画面や手順が登場する。また、本稿は筆者の記憶に基づき再現しているので、細かい部分のコードは異なる。ご了承いただきたい。

PHPによるWindows Azureクラウド・サービスの開発

Windows Azure開発環境の構築

 Windows Azureクラウド・サービスの開発を行うには、まずVisual Studio 2008を用意する。これは、無償版のVisual Web Developer 2008 Express Editionでも構わない。本稿ではVisual Studio Team System 2008のTeam Suiteを利用する。

 次に、下記の2つのモジュールをインストールする。

 これらをインストールするには、いくつかの事前準備が必要だ。詳しいインストール方法は「無償開発環境で試すWindows Azureクラウド開発」を参照してほしい。

FastCGIモジュールのインストール

 Windows Azure上では、PHPアプリはIIS用のFastCGIによって実行される。つまりWindows Azure内部では、FastCGIモジュールが最初から有効化されているのだ。手元のWindows Azure開発環境(=Windows Vistaなどのクライアント環境)でPHPアプリを実行するには、これと同じ環境になるよう、FastCGIモジュールを有効化する必要がある。

 有効化するには、(Windows Vistaの場合)[コントロール パネル]の[プログラム]−[プログラムと機能]−[Windows の機能の有効化または無効化]を実行する。これにより、次の画面の[Windows の機能]ダイアログが表示されるので、[Internet Information Services]−[World Wide Web サービス]−[アプリケーション開発機能]−[CGI]チェック・ボックスにチェックを入れて[OK]ボタンをクリックすればよい。

FastCGIモジュールの有効化
この作業を行わないと、クライアント環境でのPHPアプリ実行時に「CCT: Error: Unable to find FastCGI module at path C:\Windows\system32\inetsrv\iisfcgi.dll. Please verify that it is installed.」というエラーが表示される。

PHP実行環境の準備

 さらに、PHPアプリの実行エンジンである「Windows向けのCGI版PHP実行環境」(以降、PHP実行環境)も、ここで準備しておこう。PHP実行環境を入手するは、次のリンク先を開き、最新版(執筆時点では「VC9 x86 Non Thread Safe (2009-Jun-30 08:52:54)」)の[Zip]をクリックすればよい。

 .zipファイル(本稿の例では「php-5.3.0-nts-Win32-VC9-x86.zip」)がダウンロードされるので、これを任意の場所に展開し、フォルダ名を「php」に変更しておく。

 それでは、以上で開発環境が整ったとして、実際の開発作業に入っていこう。


 INDEX
  [特集] PHP on Windows Azure
  PHP開発者もクラウド開発を始めよう!
  1.PHP開発でWindows Azureを利用する理由
    2.PHPによるWindows Azureクラウド・サービスの開発(1)
    3.PHPによるWindows Azureクラウド・サービスの開発(2)
    4.PHPアプリをWindows Azureに乗せるコツ

ホワイトペーパーTechTargetジャパン

Insider.NET フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)

.NET未来展望台

未来展望台コーナースポンサーからのお知らせ


- PR -
- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  TomcatやJBossなどAPサーバ環境に関する
情報を集約! “業務”用APサーバ大百科

New!
  一気に解説! 最新のクラスタストレージ
「RAIDを超えたストレージ基準」……など

New!
  クラウド的ユーザー体験の変化は脅威か?
仮想化技術を使いこなす運用管理術を紹介

New!

  上司や部下、部署内メンバーとの情報共有
を“ガラッ”と変えるコラボツールとは?

New!
  おばかアプリ選手権、第4弾開催中!!
ムダにカッコよくてくだらない作品求ム!

  社内ファイルサーバを“クラウド”に統合
VPN直結「クラウド型ストレージ」を紹介

  Twitterのアカウントはなぜ突破された?
メールによる新手の攻撃手法とその対策

  もう仮想化のお試しフェイズは終わりだ!
Hyper-V 2.0が基幹システムも仮想化

  美人!? まあまあ? 気になる いやし系!!
PV急増で「美人時計」がとった手段とは?

  クライアント企業から求められる人材
⇒IT技術と経営戦略を併せ持つ「戦略家」

  .NET編集長が実践する「技術情報検索術」
サンプル・コードを簡単に探す“技”は?

  業務効率と情報セキュリティ対策を両立!
手間なく確実に機密情報を守る方法とは?

  進化を続ける富士通ストレージETERNUS DX
製品開発者の自信を裏付けるものとは何か

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  【CTC事例】約30の基幹システムを統合!
膨大なバッジジョブを制御した方法は?

  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  その数、なんと400台以上! グループ内
サーバの「統合管理」によるメリットは?