特集: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 フォーラム 新着記事
  • Kinectが切り開く“夢の近未来” (2012/2/2)
     日本を含めた世界中でKinect for Windowsセンサー商用版とSDK正式版がリリース。未来のコンピューティングはどう変化するのか?
  • 3つの視点でネイティブと.NETの適材適所を考察 (2012/1/31)
     アプリ開発は「ネイティブ」と「.NET」、どちらが最良? その問いには「適材適所」と答えるしかない。では、“適所”は一体どこかを考察する
  • SQL Azure Data Sync入門 (2012/1/30)
     SQL Azure/SQL Serverデータベース間のデータ同期を簡単に実現するサービスとは? その仕組みや使用手順を解説
  • Windows Phoneアプリ市場の現状を分析する (2012/1/27)
     Windows Phone のアプリ・ストアに日々登録されている多種多様なアプリ。カテゴリ別のアプリ数は? 市場の現状を明らかにする

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

RSSフィード

キャリアアップ

.NET未来展望台

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


- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

TechTargetジャパン

@IT Sepcial
ソリューションFLASH