AzureでPHPって動くんですか?

2011年5月23日(月)
田口 一博小木 ナツキ

初めての実行

[小木] プロジェクトの作成が終わりました(画面8)。次は実行ですね。

画面8:プロジェクト作成後の画面(クリックで拡大)

[田口] そうですね。デバッグを実行してみてください。
 
 

[小木] [デバッグ]メニューの[デバッグ開始]を選択して、デバッグ開始!あれ?何かダイアログが表示されていますが、[OK]ボタンが押せませんよ(画面9)。コードも設定も修正しないで、そのまま実行のはずじゃないんですか??

画面9:プロジェクト実行(開発ストレージの初期化中)(クリックで拡大)

[田口] まあまあ、ちょっと待ちなさい。初回の実行では、[Development Storage Initialization]ダイアログが表示され、開発用ストレージ(Storage Emulator)の初期化が行われます。しばらくして開発用ストレージの準備が終わると[OK]ボタンが有効になるから、少しは落ち着いて。

[小木] 本当だ![OK]ボタンが有効になりましたので(画面10)、[OK]ボタンをクリックしますね(ホッ)。

画面10:プロジェクト実行(開発ストレージの初期化完了)(クリックで拡大)

[田口] 後は自動的に開発用ストレージと開発用ファブリックが開始され、ブラウザが起動し、ASP.NET Webロールのデフォルトページが表示されるはずです。
 

[小木] あっ、ページが表示されました(画面11)。やった~!Azureと言ってもASP.NET Webアプリケーションなら、今までと同じような感じで開発できそうですね。ちょっと気が楽になりました。じゃあ、次に行きましょう!

画面11:プロジェクト実行(ブラウザ画面)(クリックで拡大)

マイクロソフトのクラウドサービスでPHPが動く?

[田口] Azure 開発環境の準備が終わり、開発用ファブリックも問題なく動きましたので、次はPHPを動かしてみましょう。
 

[小木] 質問なんですけど、AzureでPHPは動くんですか?というか、AzureってIISですよね・・・。IISでPHPって動くんですか?
 

[田口] まず、IISでもPHPは動きますよ。マイクロソフトのサイト(PHP on IIS)では、IISでPHPを動かすための情報を発信していますので、ぜひ見てみてください(画面12)。

画面12:PHPonIIS(クリックで拡大)

参照リンク→ PHP on IIS

[小木] ということは、AzureはIISだからPHPも動くということですね。
 
 

[田口] まあまあ、続きを聞きなさい。「AzureのWebロールは、基本的にはIIS7やIIS7.5」って覚えておいた方が良いですね。
 

[小木] あっ! WebロールとWorkerロールって何かで見た記憶が・・・
 
 

[田口]そうそう。そこ重要ですよ。Windows Azureには、WebロールとWorkerロールがあり、IISでWebアプリケーションを動かす場合はWebロール、IIS以外の主にバックグラウンド処理に使われるのが、Workerロールなんです。Webロールは、基本的にはIIS7又はIIS7.5と言ったように、FastCGIにも対応していますから、FastCGI を使ってPHPは動きますし、PHP以外の言語も動かすことができますよ。

[小木] なるほど・・・。もう1つ質問があるんですけど、PHPで書いたプログラムもASP.NETと同じようにプロジェクトに追加するだけで動くんですか?
 

[田口]いえ、PHPの動作環境は自分で整える必要がありますね。WebPIでAzure開発環境を整えたときにCGIはインストールされているので、まずはPHPをダウンロードして新しいプロジェクトに追加し、PHPの設定を行ってください。

[小木]設定不要で楽チン!って訳には行かないのは残念ですが、それほど難しくない感じはしますね。プロジェクト作成、PHPダウンロード、PHP設定ですね。やってみます。

PHPの動作環境を作る

新規でCGI Webロールのプロジェクトを作成します。先ほどと同様に[Windows Azure プロジェクト] を選択し、名前、場所、ソリューションは任意の名称やパスを入力して、[OK]ボタンをクリックします。[新しいWindows Azure プロジェクト]では、今回は[CGI Webロール] を追加して、[OK] ボタンをクリックします(画面13)。

画面13:CGI Webロールのプロジェクト作成(クリックで拡大)

PHPをダウンロードしてプロジェクトに追加します。まずは、下記サイトから PHP5.3(VC9 x86 Non Thread Safe - Zip)をダウンロードしてダウンロードしたファイルを展開します。展開後、CGI Webロール プロジェクトの直下にphpフォルダを作成して、展開したファイルをコピーします(画面14)。

画面14:PHPコピー後

参照リンク→ PHP For Windows

PHPの設定を行います。phpフォルダにあるphp.ini-productionをコピーして、php.iniを作成し、下記の値を編集します。文頭のセミコロンも外すのを忘れないようにしてください。

【編集後の値】

  //動的にロード可能な拡張モジュールを置くディレクトリを指定
  extension_dir = "./ext"
  // タイムゾーンの設定
  date.timezone = Asia/Tokyo
  // CGIとしてPHP を実行する際のセキュリティを確保
  cgi.force_redirect = 0
  // 本来の PATH_INFO/PATH_TRANSLATED サポートを提供
  cgi.fix_pathinfo = 1
  // セキュリティトークンを 匿名化する機能
  fastcgi.impersonate = 1

編集が終わったら保存して、php.iniの[ビルドアクション]を[コンテンツ]に変更します(画面15)。

画面15:PHP.iniのビルドアクションを変更
スカイコード株式会社

主にマイクロソフトの技術を中心としたプログラマ兼システム管理者兼コンサルタント兼雑務係として従事。Microsoft Azureで少しでもラクに楽しく生きていこうと企む毎日。基本怠け者。

株式会社タクシーサイト

タクシーサイト開発担当。業務システムの開発に4年間従事。PHP、Object Pascal、C#などでプログラムの基礎の基礎を学び、その後他業種へ転職。ブランク後現在の会社に入社し、クラウドを一から勉強中。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています