FastCGIを使った
高パフォーマンスの仕組み
Webサーバーを選ぶ際に、セキュリティと並んで気になるのがパフォーマンスである。PHPをIISで利用する場合にパフォーマンスが出ないのでは、いくらセキュアな環境であっても意味がない。この点でもマイクロソフトのWebテクノロジーは答えを用意している。
IIS 7 (Windows Server 2008) およびIIS 7.5 (Windows Server 2008 R2) では、FastCGIという仕組みによってPHPをはじめとするCGIアプリケーションを、高速に動作させる仕組みが用意されている。これまではCGIアプリケーションにアクセスがあった際には、リクエストごとに新しいプロセスが起動してPHPスクリプトが実行されていた。この旧来の処理方法の問題は、リクエストごとにプロセスの起動と終了が必要であり、そのためのオーバーヘッドが非常に大きいことであった。
この問題を解決するために考えられたものが、FastCGIという仕組みである。FastCGIはCGIが持っていたプロセスの起動と終了にかかわるオーバーヘッドを取り除くために考えられたものだ。FastCGIではリクエストごとにプロセスを起動していた仕組みを見直し、リクエストの処理が終わったプロセスを終了せず、次の新しいリクエストの処理を実行させることで、起動と終了を繰り返させずプロセスのリサイクルを行なうことで、オーバーヘッドを取り除いている。
このFastCGIの導入およびWindows Cache Extension for PHPにより、ASP.NETやApacheのmod_phpを利用した環境のように効率のよい仕組みでPHPを実行できるようになった。IISでPHPを使う際に、CGIのパフォーマンスに悩まされることなく利用することができるようになっている。
Webアプリケーション環境としての
IISのおすすめ
これまで一般的に思われていたIISのイメージと、最近の状況は大きく異なっていることがわかっていただけたのではないだろうか。Windows上でPHP Webアプリケーションが動くだけではなく、FastCGIによる高効率な実行環境が用意されているIISの仕組み、またアプリケーションの導入をきわめて簡単にしたWeb PIによる統合インストール。これまでPHPを使ったWebアプリケーションをWindowsサーバーで使うことを考えていなかった方にも、これらのメリットを知って選択肢の1つとして検討してはいかがだろうか。
エンドトーク
坂本:ということで、いろいろ調べたら、WordPressをIIS上で動かすのはまったく問題なしだそうです。ああ、取り越し苦労した~。
岩崎課長:確かに、オープンソース系ソフト VS. マイクロソフトというイメージだと、動かせるのか不安になるけど、マイクロソフトもPHPには一目置いているんだなあ。
坂本:やっぱり、WordPressとか、XOOPSを使っているWebサイトは多いですからね。でも、IIS上で同居できると思っている人は意外と少ないかもしれません。しかもFastCGIを使って、速度面でもきちんと担保されているなんて。
岩崎課長:そうだな。いろんな技術をいいとこ取りできて、もともと持っているスキルを活かせるというのはけっこう大事なことだ。オープンソース系をゴリゴリ使っている人だと、WindowsやIISが嫌いという人も多いようだが、一度使ってみるといいかもしれないのお。次は、さっそく使えるか、PHP on Windowsにチャレンジしてくれたまえ。
坂本:了解しました。
今回のポイント
- ・Windows + IISの環境でも、PHPのアプリケーションを利用することができる
- ・Secure by Defaultによるセキュアな環境、FastCGIによる高速なCGI実行など、IISを取り巻く環境を大きく進化している
- ・Web PIを使った統合インストールで、オープンソースWebアプリケーションをきわめて簡単に素早く構築することができる
次回はPHP+IISの環境について、さらに細かく見ていこう。
すべらないWebアプリ開発はASP.NETから!by 坂本
ということで、ASP.NETやVisual Studio 2010に興味を持ったユーザーは、さっそく以下のドキュメントを一読してみよう。最新のWebアプリケーション開発のノウハウや、マイクロソフトのソフトウェア開発のネタがギッチリ詰まっているぞ。
Microsoft Web 開発 ガイドライン ~ ASP.NET プログラミング エッセンシャル~
http://msdn.microsoft.com/ja-jp/asp.net/ff602016.aspx
ASP.NET 開発者向け技術情報
http://msdn.microsoft.com/ja-jp/asp.net/default.aspx
PHP on IIS
http://technet.microsoft.com/ja-jp/iis/ee794964.aspx
IIS TechCenter
筆者紹介:小野雄太郎
慶應義塾大学SFC研究所 所員(訪問) Microsoft MVP for Data Center Management - Management Infrastructure, Jan 2010 - Dec 2010.
慶應義塾大学SFC研究所にて、Agri-Informaticsという農業とIT技術を組み合わせたプラットフォームの研究を行っている。またフリーのエンジニアとして、レイヤー2からレイヤー7までの幅広く対応しながら、Microsoft Technologyを中心としたエンタープライズ環境を得意として、活動している。そのほか、IIS User GroupやVisual Studio User Group の運営にも関わり、コミュニティでの講演なども数多く行っており、米国Microsoft社より Microsoft Most Valuable Professional アワードも受賞している。
この連載の記事
-
最終回
データセンター
スクウェア・エニックスがコマースでASP.NETを採用する理由 -
第6回
データセンター
ヤフーが「GyaO!」でSilverlightを採用する理由 -
第5回
データセンター
PHP on Windowsで速攻Web開発を実現 -
第3回
データセンター
習うより慣れろ!ASP.NETでWebアプリを作る -
第2回
データセンター
最新ASP.NETを知るための3つのキーワード -
第1回
データセンター
Webアプリケーションをカイゼンせよ! -
クラウド
マイクロソフトのWeb開発ツールで中身も見た目もクールに - この連載の一覧へ