FastCGIは、CGI?と同様に、「プログラムの名前」ではなく、「仕様の名前」です。
通常のCGI?が、毎回プロセスを起動してクライアントへの応答を生成させるのに対し。 FastCGIでは、起動しているFastCGIプロセス(と言っていいのかは不明だけど)とソケット通信(通常はunix domain socketだけどtcpも可)を行って、クライアントへの応答を得ます。 その為、FastCGIプロセスはhttpdの動いているサーバとは別のサーバで動かす事も可能です(external動作)。
尚、上記の文章では、予めFastCGIプロセスを常駐させておかないと駄目そうなイメージがありますが、通常のCGI?と同じように、動的に、初回アクセスがあった時に初めて起動し、その後ずっと常駐するように出来る(dynamic動作)ので、起動時に面倒な事はありません(勿論、不注意な場合には、常駐時に何かトラブルがあるかもしれないですが)(また、この場合、suexec?を使っていないCGI?と同様に、httpdの権限でプロセスが生成される事に注意)。
FastCGIのプロトコル等は公開されてます。
Gauche?用のFastCGIモジュールが木村さんによって作られています → Gauche-fastcgi
試しに、ココのWiLiKi?をFastCGIで動かしてみました(ココはこんなんばっかりだな…‥)。
但し、FastCGIプロセスの動作する権限の都合上、readonlyにさせてもらっています。
尚、設定は、.htaccessに、以下の行を書いています。
<Files "pw-fcgi.cgi"> SetHandler fastcgi-script </Files>
ハッキリ言って、ココのサイトで公開しているphttpdを使うよりも、ずっとオススメです。
FastCGIは"Forgotten Treasure"だそうです。ほんとかな?
http://cryp.to/publications/fastcgi/
笑った。
the truth is: PHP, as a programming language, sucks