カテゴリー別アーカイブ: Azure

【PHP】 PHP on Windows ガイドライン ひとまず一段落


半年くらいでまずは想定した分量を完成させよう! と始めた PHP on Windows ガイドラインですが、震災で色々な作業や副次的な仕事が舞い込んだ結果、最終的に 6 月末までかかってしまったものの、ひとまず完了です。

本日 第5章を公開しました。

PHP on Windows ガイドライン (ドラフト)
http://technet.microsoft.com/ja-jp/iis/gg535422.aspx

実はこの 5 章のテーマに関しては物江と結構ディスカッションしました。というのは我々に本当にベストプラクティスが書けるか疑問だったからです。実際に実践で数十ものサイトを立ち上げているわけでもないですし、元になる英語の記事が単なる羅列であって、構成があまりイケてなかったこともあります。

でもここまでの章でまとめてきたように、 Windows で PHP の環境を作ることは非常に簡単にできる点をより多くの人に知って欲しかったですし、あとどうしても必須で読んでおいて欲しい記事としてあがっていたものでもありました。なので、色々なフィードバックがあるのを承知の上で第 5 章を書くことにしました。なので、実際に有償でコンサルタントが提供するドキュメントのクオリティでもなんでもないですし、読み物として読んでいただくことだけを前提に書いています。

====

このガイド シリーズが一段落したところで、ちょっと PHP を Windows で動かす観点で雑感を書いておこうと思います。

確かに IIS を使用した場合に PHP を動作させる環境として Apache と全く同じになるわけではありません。それは多くの PHP アプリケーションが OS や Apache に関わるモジュールだったりとか機能を使用しているからで、PHP のレベルで抽象的に吸収できていないエリアがある場合には当然起こりえます。

IIS の開発チームも IIS+PHP の推奨構成を考えるときに当然そこは考慮した点なのでしょう。それまで IIS では最速と言われていた ISAPI モデルを使うことに固執せずに FastCGI のモデルを採用しました。つまり、実際に PHP アプリケーションが動作する際には PHP のランタイム(php-cgi.exe)上で動作するようにしたことで、PHP が動作する際の他のプラットフォームとの差異は最大限減らすことができたと思います。

あとは Web PI の着眼点も良かったと思います。もうすでに色々な環境を構築しているところにさらにインストールすると色々と起きるかもしれませんが、実際に PHP の環境を作ってみると本当に 5 分以内でさくっとカップラーメンの出来上がりを待っている感触で環境ができます。それこそ IIS と PHP の環境だけだと 1 分くらいでできてしまいます。PHP の入門書にはぜひこのオプションも書いてくれるとうれしく思います。

この感覚が非常に大事だと私は最近思っています。というのはクラウドの時代になってくるに連れ、環境構築は本来考えないでよくなり、上で動作するアプリケーションの内容と質が問われるからで、そこを意識する必要がないのが理想的だからです。また、クラウドの話でよく出てきますが、今までは考えられない短期間でここまでのものを作ったとかいう話がより多く聞こえてくるようになりました。

そのために各プラットフォームの提供者はユーザーが意識しないでもいいように努力し続けなければいけませんし、逆にユーザーはアプリケーションのクオリティをさらに高みに持っていけるようにするのが本質論でしょう。マイクロソフトは今 盛んに Azure 上 で PHP も使えるという記事、講演、宣伝を色々としているのが目にとまっているかもしれませんが、本質論はそういうことなんだと思います。本当の意味でそうなるにはまだまだ努力していかないとダメですけどね。

Azure 対応の Web PI、Azure 上でのマルチ インスタンスを意識した Web Deploy サービスを作ってくれるように日本法人からは Azure 開発チームに要望を出しています。これが実現できれば本当にクラウドに数分で環境ができ、しかもサイジングを意識しないでもいい世界が来ます。やってくれると思うんだけど、さてどう出ますか。

もう一つの観点では CMS の利用が挙げられると思います。Web の世界では本当に物事のスピードが速いなぁと感じている点でもありますが、一から作るのではなく、ありものに手を加えるというのが実際に多く行われています。システムの規模に応じて必要な機能要件や非機能要件の幅は異なるわけで、それに応じて既存で存在するありものの価格も変わります。だからフリーミアムな発想も出ますし、その価値がわかる人には当然素晴らしいものであると気づくと思います。マイクロソフトの各サーバー製品などもほぼその道筋に沿ったものであると言えると思います。

企業向けのシステム インテグレーションのお仕事で育った私は SI コアという用語に以前反応していましたが、要は横展開できるものを作らないとスケールしないということにみんな気づいていて、形は違えどパッケージ ビジネスなんかもその一つの潮流でしょう。だから「歴史は繰り返す」わけですが、人月で人ひとりの工数を売っているレベルを脱却しない限りは 1.0 は 1.0 であって、非効率を効率化することで 1.2 くらい、サービス残業で 1.5 や 2.0[あまりこのレベルの人いないで欲しいけど現実的には。。。 (+_+)] になるだけです。横展開すればそれが 2 にも 10 にもなる可能性を秘めているわけですね。

世の成功者はこの原理に気付いてどんどん先に進んでいき続けている気がしますが、果たして皆さんの周りではどう物事が進んでいるでしょうか。

プラットフォームの選定には本当に様々な要素があり、複雑です。ここに書いたようなことを考慮すると「PHP を Windows で使う」ということは本当にミクロな話であり、どうでもいいと思う人もいらっしゃるかもしれませんが、選択の幅が広くなることはいいことであり、フィットするシチュエーションがあれば使えばいいのだと思います。

でもまあ自分の子供のように 2006 年から接してきた IIS7 については「使ってみればわかるのになぁ」という要素も多いので、まだ触ったこともないという方にはぜひ試していただきたいですけどね。(^o^)

ちなみに IIS7 はいつごろ登場したかというと、まずはクライアントの Windows Vista のベータ前のビルドから情報発信を始めました。ということは。。。。。。
ここは私も情報を持っていないので皆様の想像にお任せすることにしましょう。

広告

【Web】 米国ラスベガスで MIX が開催され、引き続き情報発信をしていきますよ


毎年 MIX という Web制作や開発者向けのイベントがここ数年開催されてきた。今年も同じように 4/12 ~ 4/14 に開催されていた。

通常は日本のどこかしらのイベントで、あるいは REMIX という名前のイベントで持ち帰った内容を日本語でエバンジェリストや外部の講師の方が解説するイベントをやってきている。

今年は少し趣向を変えたことをやってみた。

本家: http://live.visitmix.com

日本: http://live.visitmix.com/jp

という日本独自サイトを立ち上げ、そこで日本のエバンジェリストをはじめ、社外の方でも MIX に参加されている人やメディア関係の方もここで様々な情報発信をできるようにした。

また、Facebook ページも開設した。

http://www.facebook.com/mixjapan

少しマイクロソフトが関与しているサイトの割りにコンテンツが”柔らかい”のですが、これがまた MIX というイベントの雰囲気でもあるのです。

ぜひ楽しんでいただけたら「いいね!」してくださいね。

http://live.visitmix.jp の方も内容の更新を予定しております。

特に容易にここから基調講演ビデオを見れるようにしたいほか、日本で作成される関連コンテンツにすぐにたどり着けるようにうまく組み上げていきたいところ。

こちらのページもお楽しみに!

【Azure】 地震対応用 Azure 無料パス 無期限ではないが、使えるなら使って!!


緊急情報のホスト先として、あるいは緊急退避用として使えるのであれば、Azure使ってください!

本無料パスによって 90 日間無料でWindows Azure Platform をご利用いただけます。クレジットカードの登録は必要ありません。

東北地方太平洋沖地震 対応用のプロモコードをご入力ください。
通常の 30 日間無料パスを急遽 90 日間に延長してご提供しております。従いまして、本申し込みサイトや申し込み後の通知メールでは、一部 30 日間無料パスと記載されている場合がございますが、地震対応用のプロモコードでお申し込みの方は 90 日間無料でご利用いただけます。

Windows Azure Platform 無料パス
東北地方太平洋沖地震 対応用)

http://windowsazurepass.com/?Campid=F3313E69-464C-E011-98E3-001F29C8E9A8

【Maniax】 OSC 2011 Tokyo Spring で決勝開催


いやぁ 3 回 見届けてきた人間として、4 回目を外から見ることになり、やっぱ決勝に来られるくらいの方はみんなすーごいです。私は OSC のブースやチームメンバーのセッションに立ち会っていたので会場に居れなかったのですが、UST で全部流してみました。

OSC 会場的な Install Maniax の誘導から。(笑)

DSC00459DSC00464DSC00468DSC00471

もうほぼ終盤ですが、会場に行けたのでその様子も。

DSC00486DSC00487DSC00493

なんか見ていて思ったのは、会場でインストールを物理マシンにしてきた過去3回との共通点としてはネットワーク帯域をどう読むかに結局なっちゃっているのかなぁと。今回は専用線を引いていたらしいのですけれどやっぱり OSS Web アプリケーションのインストールはファイルのインターネット越しのコピーなところが結構あるのでその容量次第なところがありますよね。

今回のルールは厳密にはどうだったんでしょうね。今度聞いとこ。(笑)

この点を考慮するとやっぱりローカルでパッケージを作ってあげないで Azure 側でセットアップが進行するようなメカニズムを構築したいですよね。WebDAV 有効にしちゃうのは NG なんだろうか (笑)そしたら全部ファイルコピーをネットワークドライブにできるような(爆)。。。まじめに今度ルール聞いとこっと。

砂金が途中でコメントしていたように、今は WebMatrix や Web PI をぐいぐい推しているチームにいるので、早く Azure とこれらの仕組みがうまくペアリングできるように頑張りたいなぁ。

WebMatrix の観点でコメントしておくと、WebMatrix というツールは、ローカルに Web PI の仕組みを使って OSS Web アプリケーションをインストールしてからカスタマイズをできるようになってるんですね。

たとえば WordPress であれば同僚の武田が書いているように

[MEMO] WebMatrix から WordPress をインストールする方法
http://blogs.msdn.com/b/web_/archive/2011/02/03/10124155.aspx

こんな感じでローカルの、しかも XP でも動く IIS Express 7.5 にインストールされて、それと連動して簡易開発を行うわけですよね。

WebMatrix は発行機能が優秀で、サーバー側(Windows Server/IIS7)の準備条件があるんですけど、それがうまく Windows Azure 側で設定できればじゃんじゃん WebMatrix で準備できたアプリを Web ロールに送れるはずなんですよね。

そのサーバー側の設定がちょっとキモいんですよね。物理サーバーだったら、これもまた同僚の物江が書いています。

WebMatrix からの直接アップロードを可能とする IIS Web 配置サービスの設定
http://blogs.msdn.com/b/osamum/archive/2011/02/08/webmatrix-iis-web.aspx

今の Windows Azure は Web ロールが拡張されて、Full IIS になっているはずなので、いつも IIS の講演している立場からすると IIS のレベルだと物理サーバーの IIS と何ら変わらなくなっているんですよね。ただ、IIS7 になってから標準機能じゃない追加拡張機能が別途ダウンロードしてインストールできるものが以前よりも増えたので、いろいろとやんないといけないですね。

でもって、Azure の場合は多分スタートアップタスクにインストール作業を放り込まないといけないので、全部 UI 応答なしのコマンドで実装しないとダメですよね。

まだ実際にこれ(WebMatrix から Azure への発行)を動かすことにチャレンジする時間がとれていないのですが、なんか自動化するならこういう要素だろうな、と。

IIS の標準機能追加
これは servermanagercmd.exe がいずれリタイアするので、pkgmgr.exe という今のWindows でいうと、「Windows 機能の有効化または無効化」 でチェックを入れる各設定をコマンドでインストール指示できるものがいいでしょうね。あとは Windows PowerShell の powershell.exe にパラメーター渡しで実行するようにしたらいけるのかな??? Add-WindowsFeature 動かせないのかなん。。。

Microsoft Web Deploy のインストール
日本語では Web 配置ツール といいますけど、IIS の拡張機能なので
http://www.iis.net/download/webdeploy
というようなところから入手できます。こっちの本家ページの場合、日本語のモジュールは右下からの入手になりますね。

各 IIS の拡張モジュールは少し本家と同期ができていないものの、実は日本語のページを作ってます。私が (汗)。あと、実は本家にそこへの誘導ページを本社と交渉して作ったのも私だったり(汗)。

コマンドで実行するのであれば拡張子が .msi なんで、/q (かな)つけると画面出ずにインストールできるのではと。あとはヒントとして、Web PI がインストールするログに書いてあるコマンドラインをそのまま使えばいいはず。

アクセス権の設定
うーん これは icacls.exe かな。

管理サービスの委任設定
これがキモいなぁ。管理サービス関連の設定って構成情報ファイル(web.config)にまだなりきれてなくてレジストリーな部分もあるんですよ。だからまあ .reg ファイルを作ればできるのかな??

IIS マネージャーのアクセス許可設定
これは .config に書いてあるのかな。。。
それであれば appcmd.exe か、なんかテキストファイルをコマンド編集する方法が使えるかもなぁ

管理サービスの開始
これは net start でしょう。

というのが厄介なところですかね。

あとはもちろん使うデータベースが MySQL ならその準備がいりますね。SQL Server ものだったら SQL Azure を使う想定をしておきたいところ。


でも。

WebMatrix であげるのであれば結局ファイル転送がいっぱい。

webpicmdline.exe かな。
Windows Azure Startup Tasks: Tips, Tricks, and Gotchas

スタートアップコマンドでなんとか Web PI (極小100Kくらい)をインストール。
Azure の Web ロール上で Web PI のコマンド実行しまくるのが面白いかな。
そうすれば Web PI が対応した OSS Web アプリケーション(現在 49)を全部結構スムーズにいれられるかいなぁと思います。

ちょっとやってみっかな。(笑)

でも結局プログラムのファイルストレージをどうやるかを解決しないとだな。


いずれにせよ、インストール マニアックス 4に参加された皆様、予選・決勝ともに本当にお疲れ様でした。様子はいつまで上がっているのか知らないのですが、現時点では UST で見れますね。
http://www.ustream.tv/channel/install-maniax-4

ビデオ中になんか発表もあったので今のうちにさくっと見ておく~?(笑)
あらためて。決勝に出てたみなさんは本当にすごいですわ。
タイガーもおつかれさま~。

追記)
あっ。 なんで懇親会いないの~ と怒られそうなのでちょっと書いておきます。
明日はこれまた面白そうなイベントのスタッフ予定なんですぅ。
つまり、明日も出動よん。

CSS Nite in Shinagawa「HTML5+IE9 Web Camp」
http://cssnite.jp/shinagawa/vol01/

今後 HTML5 とか IE の話に私も絡んでいく事になってますんです。いぇーい!