特集:PHP on Windows Azure PHP開発者もクラウド開発を始めよう! デジタルアドバンテージ 一色 政彦2009/07/28 |
|
|
●Visual Studioでのクラウド・サービス・プロジェクトの作成
Visual StudioのIDEを起動し、メニュー・バーから[ファイル]−[新規作成]−[プロジェクト]を選択する。これにより、次の画面の[新しいプロジェクト]ダイアログが表示される。
[新しいプロジェクト]ダイアログによるクラウド・サービス・プロジェクトの作成 |
[プロジェクトの種類]のツリー表示から[Visual C#]もしくは[Visual Basic]−[Cloud Service]を選択し、[テンプレート]の一覧から[Cloud Service]を選択した状態で[OK]ボタンをクリックする。これにより、次の画面の[New Cloud Service Project]ダイアログが表示される。
[New Cloud Service Project]ダイアログによるロールの追加 |
このダイアログでは、プロジェクトに作成するロール(Role)を追加できる。ロールとは、Windows Azure上で管理されるアプリ/プログラムの種類(=役割)である。そして、そのロールの1つのインスタンス(=実体)が、1つの仮想マシン(VM:Virtual Machine)に該当する(※仮想マシンのインスタンスを自由に増やしてスケールできる)。このロールには、現時点で以下の3種類がある。
- ASP.NET Webロール:主にASP.NET Webアプリ用
- Workerロール:主に.NETによるバックグランド処理用
- CGI Webロール:主にPHPなどのFastCGI Weアプリ用
※厳密には、ロールには「Webロール」(=Weアプリ用)と「Workerロール」(=バックグランド処理用)の2種類しかない。「ASP.NET Webロール」と「CGI Webロール」は、生成されるひな型コードがASP.NET向けか、FastCGI向けかという点が異なる。
今回はPHP開発なので、[New Cloud Service Project]ダイアログの左側の[Roles:]一覧から「CGI Web Role」([Visual Basic]や[Visual C#]というグループはどちらでもよい)を選択した状態で、中央の[>]ボタンをクリックする。これにより、右側の[Cloud Service Solution:]一覧に「CGI Web Role」が1つ追加される。
最後に[OK]ボタンをクリックすると、次の画面のようにプロジェクトが作成される。
作成されたPHP開発用クラウド・サービスのプロジェクト群([ソリューション エクスプローラ]) |
この画面の例では、「CloudService1」というソリューションの中に、クラウド・サービス・プロジェクトの「CloudService1」と、CGI Webロール・プロジェクトの「WebCgiRole1」が作成されている
●PHP実行環境のインポート
Windows Azure上でのPHPアプリの実行にはPHP実行環境が使われるが、Windows Azure内にはそのPHP実行環境は含まれていない。そのため、開発者側でWindows Azure上に配置しなければならない。そこでまず、先ほどダウンロードした「php」フォルダを、WebCgiRole1プロジェクトにインポートする。
インポートするには、次の画面のように[ソリューション エクスプローラ]の「WebCgiRole1」プロジェクトの上に、「php」フォルダをドラッグ&ドロップするだけだ。
ドラッグ&ドロップによるPHP実行環境のインポート |
●PHP設定ファイルの有効化と設定編集
PHP実行環境の動作を決めるのは、設定ファイル「php.ini」の役割だ。このファイルは、「php.ini-development」(開発用)と「php.ini-production」(製品用)の2種類が提供されている。今回はこのうち、「php.ini-production」をコピーして(=[ソリューション エクスプローラ]で該当ファイルを選択して[Ctrl]+[C]キーを押して[Ctrl]+[V]キーを押し)、コピーした方のファイルの名前を「php.ini」に変更すればよい。
そして、[ソリューション エクスプローラ]で、その「php.ini」ファイルを選択している状態で、[プロパティ]ウィンドウの[ビルド アクション]を「コンテンツ」に変更する。なお、Windows Azure上に配置すべき.EXE/.DLLファイル群はすべて、[ビルド アクション]が「コンテンツ」になっている必要がある。これらのファイルは、通常、インポート時に自動的に「コンテンツ」になっているはずだ。
あとは、php.iniファイルの内容を状況に合わせて設定すればよい。例えば本稿では、次のコードの太字部分を追記した。
|
|
PHP設定ファイル(php.ini)の編集例 | |
「cgi.force_redirect」「cgi.fix_pathinfo」「fastcgi.impersonate」ディレクティブについては後述。「date.timezone」ディレクティブはdate関数群で使われるデフォルトのタイムゾーンを定義している。 |
さらに、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に乗せるコツ | ||
- 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|
キャリアアップ
未来展望台コーナースポンサーからのお知らせ
- - PR -
- - PR -
転職/派遣情報を探す
「ITmedia マーケティング」新着記事
米司法省がGoogleに「Chrome」売却要求 広告業界への影響は?
米司法省によるGoogleへのChrome売却要求は、リテールメディアネットワークに恩恵を与え...
トランプ氏勝利で追い風 ところでTwitter買収時のマスク氏の計画はどこへ?――2025年のSNS大予測(X編)
2024年の米大統領選挙は共和党のドナルド・トランプ氏の勝利に終わった。トランプ氏を支...
AI導入の効果は効率化だけじゃない もう一つの大事な視点とは?
生成AIの導入で期待できる効果は効率化だけではありません。マーケティング革新を実現す...