[PHP-users 10336] Re: FastCGI with PHP/PERL on IIS & Apache

Youichi Iwakiri php-users@php.gr.jp
Wed, 25 Sep 2002 13:57:38 +0900


いわきりです

Yasuo Ohgaki wrote in <3D911875.4000208@ohgaki.net> :
>FastCGIに似たような物に、SRMがあります。
>SRMどっちかというと、永続的なオブジェクトが欲しい、オブジェクトを共有したい
>という要求が最初にあったような設計になっています。
># FastCGIは使った事がありませんが、SRMど同じような事が
># できる?

http://www.vl-srm.net/doc/design.graphic.php
を見る限り、似通った構成を取っています。
しかし、OverViewのmod_php + srm extensionがsrm daemonと
通信する様にはなっていません。
あくまで、mod_fastcgiは、backend daemonに対し、Requestを
出すだけで、backend daemonが全てのドキュメントを作成し、
Browserに送り返します。(mod_fastcgiはスルーするだけ)

元のRisaPapaさんが、動作を確認出来ている部分は、
phpをdaemonとして動作させており、IISとプロセス間通信をして
いるのだと思います。PHPスクリプト自体は毎回読み込まれ
compile, executeされているので動作的にはWeb server + mod_phpと
同等と思われます。

Cだと
void main(void)
{
    while(FCGI_Accept() >= 0) {
        // 何らかのコード
    }
}

Perlだと
use FCGI;
while(FCGI::accept() >= 0) {
    // 何らかのコード
}

といった記述になり、RequestされるべきCのコードもしくは
Perlスクリプトがdaemonとなりますが、PHP版のインタフェースは
私の認識では提供されていませんので、
void main(void)
{
    while(FCGI_Accept() >= 0) {
        // PHP core
    }
}
といったようなコードでPHPインタプリタ自体をdaemonに
しておりPHPスクリプトは毎回呼び出される形ですので
飛躍的な速度の改善には繋がらないと踏んでいます。

IIS版のphp、Zeus版のphpが動作不安定でありFastCGIを
使う方が安定すると言うことでしたら一考の価値はありそうです。

#SRMは面白そうですね、汎用クラスを作成し、動作させていれば
速度面の向上が図れそうです。Pearを動作させるだけでも良さそう :)

-- 
Youichi Iwakiri