PHP on Azure ~WindowsAzure4eでクラウド開発してみよう

Slides:



Advertisements
Similar presentations
© 2007 Autodesk1 ProjectPoint API 概要 AEC ソリューション CPM オートデスク株式会社.
Advertisements

Wiki 的年寄りの昔話 WikiBase と YukiWiki 1.x. Wiki Wiki って言うけどさ。 こんなの見たことあるかよ?
主専攻実験 第1回 ガイダンス資料 TA : 野坂 龍佑 (M2), 高林大輔 (M1)
マイクロソフトがホスティングする拡張性に優れたサービス ベース アプリケーション プラットフォーム.
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也. 講義計画(あくまで予定) 第 1 回 プログラミング言語の種類と歴史 第 2 回 eclipse の基本操作 第 3 回 eclipse のデバッグ機能 第 4 回 構造化プログラミングの復習 第 5 回 演習 第 6 回 構造化指向からオブジェクト指向へ.
Windows Azure ハンズオン トレーニング Windows Azure Web サイト入門.
Web アプリをユーザー毎に カスタマイズ可能にする AOP フレームワーク
BBT大学 Ruby on Rails開発環境セットアップマニュアル
Visual Studio 2010 の新機能 Coded UI Test
WindowsAzure でのアプリ開発 けんちゃん.
インターネット ショップを開設するための要件
D&UNITE 株式会社 代表取締役 株式会社 T-Planning 取締役 Microsoft MVP for ASP.NET/IIS
D2-301 現時点の本資料は 完成版のスライドではありません。
情報処理実習 第05回 Excelマクロ機能入門 操作マクロ入門.
PROCESS 14:一般情報(2) InstallShieldLecture
PHP AV(Audio Visual) 拡張 PHP asアプリケーション
.NET テクノロジー を利用した SAP ソリューションの拡張 (3階層化) (評価環境構築ガイド)
Visual Studio 2005による XML Web サービス入門
WebDAVでOpenOffice.org の文章を共有する
Windows Azure 仮想マシン 入門.
ゲームプログラミング講習 第1章 DXライブラリ入門
Win32APIとMFC H107102 古田雅基 H107048 佐藤一樹 H107126 山下洋平.
続 Entity Framework 入門 SQLWorld #8 サヴロウ.
Silverlight とは.
Visual Studio LightSwitchの概要
PHP Framework Update symfony 編 株式会社ディノ 月宮紀柳.
MSBuild 色々出来るよ 2011/04/02 お だ.
Windows Azure で作る ボットアプリ?
Live Framework 入門 その2 JZ5(松江) 2009/8/22.
.NET テクノロジー を利用した SAP ソリューションの拡張 (3階層化) (評価環境構築ガイド)
データベース設計 第9回 Webインタフェースの作成(1)
Javaによる Webアプリケーション入門 第9回
3 Macintoshの基本操作(3) 3.1 エイリアス エイリアスを作る ファイルなどの分身となるファイル アイコンを選択
第8章 Web技術とセキュリティ   岡本 好未.
ホスティングサーバの作成と、 ラズベリーパイの利用
建設・建築現場のデータもクラウドへ自動バックアップ!
Windows Azure で作る ボットアプリ?
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
プロジェクト演習Ⅱ インタラクティブゲーム制作 イントロダクション2
Oracle XEを使ってみよう 初音玲.
MVP for VB が語る C# 入門 初音 玲.
MVP for VB が語る C# 入門 初音 玲.
Windows Azure (CTP) 触ってみた
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也.
Windows PowerShell Cmdlet
VBA ( Visual BASIC for Application) を使えるようにする方法
Microsoftのマルチプラットフォーム戦略
Microsoft Visual Studio 2005 Tools for
.NET Framework 3.0 概要 (旧称 : WinFX)
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
仕事: SystemVerilogを使いたい
Microsoft BizTalk Server & SAP PP モジュール 連携検証レポート概要
0.2 プロジェクトの準備 DXライブラリを使うための準備.
Web - 01 IIS を インストールしよう.
COM コンポーネント・オブジェクト・モデル.
Windows Azure (CTP) 触ってみた
インタラクティブ・ゲーム制作 プログラミングコース 補足資料
7-0.SWORD Client for WEKO インストールマニュアル Version 2.2
Oracle XEを使ってみよう 初音玲.
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也.
一歩進んだ Views の使い方 スタジオ・ウミ 山中.
第1章 いよいよプログラミング!! ~文章の表示 printf~
System.AddInを利用したアプリケーション拡張 - アドインの開発 -
「拝啓、さかもとと申します」 2008年6月28日 わんくま同盟 勉強会初参戦。 ※最重要 -質問はご遠慮願います-
vc-1. Visual Studio C++ の基本操作 (Visual Studio C++ の実用知識を学ぶシリーズ)
「拝啓、さかもとと申します」 2008年6月28日 わんくま同盟 勉強会初参戦。 ※最重要 -質問はご遠慮願います-
Visual Studio 2013 の起動と プロジェクトの新規作成 (C プログラミング演習,Visual Studio 2019 対応) 金子邦彦.
プロジェクト演習Ⅱ インタラクティブゲーム制作
System.AddInを利用したアプリケーション拡張 - アドインの開発 -
第0.5回: ~Unity Editorの操作方法~
Presentation transcript:

PHP on Azure ~WindowsAzure4eでクラウド開発してみよう WINGSプロジェクト 山田祥寛 yoshihiro@wings.msn.to http://www.wings.msn.to/

自己紹介 山田祥寛(やまだ よしひろ) 「WINGSプロジェクト」という執筆コミュニティを運営 さちひろでも、しょうかん、でもありません! 「WINGSプロジェクト」という執筆コミュニティを運営 書籍や、@IT、CodeZineのようなサイトに記事をみ んなで投稿しています 興味のある方は、ぜひ一緒に! http://www.wings.msn.to/index.php/-/A-11/

Visual Basicや C#だけじゃない Azureで使えるのは… Visual Basicや C#だけじゃない でも… PHPのような非.NET言語も使えます

現状を 見てみましょう PHP on Azureは不安? 資料も少ないし、どれだけ使えるのかよく判らない 開発環境は? ライブラリは? 導入は簡単なの? 現状を 見てみましょう

PHP on Azureって 使えるの? 本日のアジェンダ PHP on Azureの開発環境は? 利用できるPHPのバージョンは?

PHP on Azureの開発環境は? Visual Studio+Azure Toolsでもできるけど… Eclipse PDTは使えないの? そんな人にはWindowsAzure4e

WindowsAzure4eって? Windows Azure Tools for Eclipseの略 Eclipse PDT(PHP Development Tools)のプラグイン PDTの機能はそのまま使える ストレージエクスプローラで、ストレージ管理も 現時点では、VSのサーバエクスプローラより高機能 開発ファブリックでのデバッグ実行ももちろんできる

インストール時には要注意 Windows Azure SDKのパスを設定する デフォルトは1.1なので、1.1→1.xにバージョンアップ したときには特に注意 実行時はエラーも出ません!

やりましょう 利用できるPHPのバージョンは? デフォルトで用意されているPHPは5.2.12 PHP 5.3の新しい機能を使いたい! 名前空間、無名関数、php.iniのセクション化…などなど やりましょう

必要なもの PHP 5.3.x(VC6 x86 Thread Safe) PHP_Azure.dll http://windows.php.net/download/ PHP_Azure.dll http://phpazurecontrib.codeplex.com/ 設定項目の取得やローカルストレージ、Azureログなど SQL Server Driver for PHP http://sqlsrvphp.codeplex.com/ Windows Azure SDK for PHP (オプション) http://phpazure.codeplex.com/

php.iniの編集には要注意 配置先は/phpフォルダの直下 date.timezone(デフォルトのタイムゾーン)を設定 extension_dirは”./ext”に変更 Fast CGI関係のパラメータを設定する cgi.force_redirect = 0 (セキュリティを確保。IISでは不要) cgi.fix_pathinfo = 1 (本来のPATH_INFO機能を提供) fastcgi.impersonate = 1 (セキュリティトークンを偽装) extensionでphp_curl.dllを有効化 ストレージ操作でエラーになるので要注意 その他はお好みに応じて mbstring.~、default_charsetくらいは設定しておこう

必要なモジュールを差し替え オリジナルの場所はココ! PHP 5.3 VC6 x86 Thread Safeを選択 C:\pleiades\eclipse\configuration\org.eclipse.osgi\ bundles\422\1\.cp\resource PHP 5.3 VC6 x86 Thread Safeを選択 ホントは53だけど、どこで設定しているのか判らなかったので… PHP_Azure.dll、 SQL Server Driverは含めない! → PHP_Azure.dll → SDK for PHP → php_sqlsrv_52_ts_vc6.dll

php.iniを編集したい アプリケーションごとに異なる設定はここで ただし… cgi.force_redirect php.iniを編集したい アプリケーションごとに異なる設定はここで <プロジェクトルート>\ServiceDefinition.csx\roles \WebRole\approot\php ただし… ServiceDefinition.csxはデバッグ実行を一度行わ ないとできないので、要注意

Windows Azure SDK for PHP ライブラリはどこまで使えるの? ストレージサービスへのアクセスはライブラリが必須 .NET Frameworkではマネージライブラリを提供 PHPでは? Windows Azure SDK for PHP

Azure SDK for PHP って? Azureマネージライブラリからストレージライブラリだ けを抜き出した感じ ローカルストレージやAzureログの書き込みは PHP_Azure.dllでできる 足りないのは診断情報のストレージへの転送くらい 将来的には、追加の予定 本家のAzureマネージライブラリにはない機能も!

でも、心配 いりません セッションハンドラ 複数のロールインスタンスでセッションが共有されな い PHP標準のセッション管理はファイルシステムへの保 存 → AzureではNG でも、心配 いりません

Microsoft_WindowsAzure_SessionHandler セッションハンドラを登録するだけ <?php require_once 'Microsoft/WindowsAzure/Storage/Table.php'; require_once 'Microsoft/WindowsAzure/SessionHandler.php'; $cli = new Microsoft_WindowsAzure_Storage_Table(); $h = new Microsoft_WindowsAzure_SessionHandler( $cli , ‘sess_table‘, ‘mysession’); $h->register(); // ここから先はいつも通り session_start(); $_SESSION['name'] = '山田'; print($_SESSION['name']); ・テーブルクライアント ・テーブル名 ・パーティションキー

こんな機能もあるよ エンティティを定義しなくてもテーブルアクセスできる! ブロブストレージをストリームラッパーとして登録 プロトコルを意識せずにリソース操作が可能に $e = new Microsoft_WindowsAzure_Storage_DynamicTableEntity( $partitionKey, $rowKey); $e->Name = urlencode($_GET["Name"]); $cli->insertEntity($table, $e); $cli = new Microsoft_WindowsAzure_Storage_Blob(); $cli->registerStreamWrapper('blob://'); $h = fopen(‘blob://container_name/blob.txt', 'r');

SQL CRUD Application Wizard for PHP テーブルストレージ、SQL AzureからCRUDコードを 自動生成 ただし、日本語は未対応なので、要注意 設定/取得のコードにエンコード処理を $zentity->Body = urlencode($_GET["Body"]); htmlentities(urldecode($entity->Body), ENT_COMPAT,‘UTF-8')

やりましょう WindowsAzure4eも便利だけど でも、Visual Basic/C#ロールと連携するならば… Visual Studioの方が慣れてるし やっぱりVisual Studioで開発したい やりましょう

どうする? クラウドプロジェクトにCGI Webロールを追加 CGI Webロールにphpの実行バイナリを追加

さっきと似てるけど、ちょっと違う 実行バイナリには、php_azure.dllやSQL Server Driverまですべて含める php.iniの設定はさっきと同じ /phpフォルダ配下のビルドアクションは「コンテンツ」

あとは実行バイナリを登録するだけ Web.config <system.webServer> <modules runAllManagedModulesForAllRequests="true"/> <handlers> <add name="FastGGI Handler" verb="*" path="*.php" scriptProcessor="%RoleRoot%\approot\php\php-cgi.exe" modules="FastCgiModule" resourceType="Unspecified" /> </handlers> <defaultDocument> <files> <clear/> <add value="index.php"/> </files> </defaultDocument> </system.webServer>

あとは実行バイナリを登録するだけ Web.roleconfig <?xml version="1.0" encoding="utf-8"?> <configuration> <system.webServer> <fastCgi> <application fullPath="%RoleRoot%\approot\php\php-cgi.exe"/> </fastCgi> </system.webServer> </configuration>

まとめ? AzureはPHP に対応している

まとめ? ちょっと違う

PHP on Azureの 開発環境は もう十分整っている まとめ? PHP on Azureの 開発環境は もう十分整っている