TOP
>
システム開発
> FastCGIによるWindowsサーバ環境でのPHP高速化と安定化
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コードの実行が終了したらプロセスを終了していました。プロセスの起動と終了には時間が掛かるため、全体的な実行時間が遅くなっていたのです。
図7:CGI方式のPHPコード実行シークエンス
(画像をクリックすると別ウィンドウに拡大図を表示します)
そこでZend社とMicrosoft社は、Windowsサーバ環境におけるPHP環境の向上をはかるため、FastCGI方式によるPHPプロセスの実装を行いました。
FastCGI方式方式では、事前にPHPプロセスを起動しておき、PHPコードの実行が終了してもPHPプロセスをそのまま残すようにしました。そのため、リクエストごとのPHPプロセス起動が省略され、大幅な高速化を実現できました。
図8は、200リクエストを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高速化と安定化