TOPシステム開発> FastCGIによるWindowsサーバ環境でのPHP高速化と安定化
Zend Engine
PHPの根幹Zend Engine

第2回:モジュールによる高速化と機能拡張

著者:ゼンド・ジャパン  佐藤 栄一   2007/5/28
前のページ  1  2  3
FastCGIによるWindowsサーバ環境でのPHP高速化と安定化

   一般的にWindowsサーバでPHPを動作させると、非常に遅いというイメージがあるかもしれません。これは、WindowsサーバにおけるPHPプロセスの実装方法に問題があったためです。

   Windowsサーバでは、PHPプロセスを実装するときにCGI方式で実装していました。CGI方式では、リクエストごとにPHPプロセスの起動と停止を行っています。

   つまりPHPコードを含むWebページのリクエストを受け取ると、WebサーバがPHPプロセスを実行しPHPコードの実行が終了したらプロセスを終了していました。プロセスの起動と終了には時間が掛かるため、全体的な実行時間が遅くなっていたのです。
CGI方式のPHPコード実行シークエンス
図7:CGI方式のPHPコード実行シークエンス
(画像をクリックすると別ウィンドウに拡大図を表示します)

   そこでZend社とMicrosoft社は、Windowsサーバ環境におけるPHP環境の向上をはかるため、FastCGI方式によるPHPプロセスの実装を行いました。

   FastCGI方式方式では、事前にPHPプロセスを起動しておき、PHPコードの実行が終了してもPHPプロセスをそのまま残すようにしました。そのため、リクエストごとのPHPプロセス起動が省略され、大幅な高速化を実現できました。

   図8は、200リクエストをCGI方式とFastCGI方式で実行したときの処理時間の比較です。

CGI方式とFastCGI方式の比較
図8:CGI方式とFastCGI方式の比較

   FastCGI方式では、CGI方式に比べて、1回目で30%、2回目以降は20%程度の時間で実行できます。1回目が遅いのは、PHPプロセスの起動を行っているからです。


Zend Engine III

   現在、PHPコミュニティでは、PHPの次期バージョンである6.0の開発を進めています。Zend社は、PHP 6.0の開発に合わせて、Zend Engine IIIの開発を進めています。今後もZend Engineは内部からPHPを支えていきます。

前のページ  1  2  3


ゼンド・ジャパン株式会社 佐藤 栄一
著者プロフィール
ゼンド・ジャパン株式会社  取締役   佐藤 栄一
ZendプロダクトおよびMySQLプロダクトを担当。ゼンド・ジャパン株式会社は、PHPのコア技術者が設立したイスラエルZend Technologiesと提携関係にあり、Zendプロダクトの国内総代理店です。ZendプロダクトをベースとしたXAMPによるシステム構築を推進しています。


INDEX
第2回:モジュールによる高速化と機能拡張
  Zend Engineと連係する周辺のモジュール
  Zend PlatformによるPHP環境の拡張
FastCGIによるWindowsサーバ環境でのPHP高速化と安定化