Sun Java System Web Server 7.0 管理ガイド

FastCGI アプリケーションの開発

FastCGI アプリケーションの開発は、Perl、PHP、C、および Java を使って行えます。次の各節では、広く普及しているいくつかのプログラミング言語を使ってアプリケーションを開発する手順について、簡単に説明します。

ProcedureFastCGI アプリケーションの実行

  1. Web Server を停止します。

  2. Web Server を再起動します。

  3. 「fcgi」をアプリケーションルートに持つアプリケーションにアクセスします。

    例: http://localhost/fcgi/ListDir.php

FastCGI アプリケーションの構造

典型的な FastCGI アプリケーションのコードは、次の構造を持ちます。

初期化コード

応答ループの開始
		応答ループの本体
応答ループの終了

初期化コードが実行されるのは、アプリケーションの初期化時に 1 回だけです。初期化コードは通常、データベースのオープンや、テーブルまたはビットマップの値の計算など、時間のかかる処理を実行します。CGI プログラムを FastCGI プログラムに変換する場合の主なタスクは、初期化コードと、要求ごとに実行する必要のあるコードとを分離することです。

応答ループは継続的に実行され、クライアント要求が到着するのを待ちます。このループはまず、FastCGI ライブラリのルーチン FCGI_Accept を呼び出します。FCGI_Accept ルーチンは、クライアントが FastCGI アプリケーションを要求するまで、プログラムの実行をブロックします。クライアント要求が到着すると、FCGI_Accept はブロックを解除し、応答ループの本体を 1 回実行したあと再度ブロックし、別のクライアント要求の到着を待ちます。このループが終了するのは、システム管理者または Web Server が FastCGI アプリケーションを終了した場合だけです。

Perl の使用

最新の FCGI モジュールを CPAN からダウンロードしてインストールします。ActivePerl については、http://aspn.activestate.com/ASPN/Downloads/ActivePerl/PPM/Zips からモジュールをダウンロードできます。

Perl を使って FastCGI アプリケーションを記述する方法の詳細については、http://www.fastcgi.com/devkit/fastcgi-prog-guide/ch3perl.htm#3659 を参照してください

PHP の使用

PHP 4.3.0 以降、FastCGI が PHP エンジンのサポートされた構成の 1 つになりました。PHP 4.3.x 以上のエンジンを FastCGI サポートを有効にしてコンパイルするには、次のように、構成スイッチ --enable-fastcgi をビルド処理の一部として含めます。


./configure <other-options> --enable-fastcgi
gmake

コンパイルが完了すると、php バイナリが FastCGI 対応になります。

PHP バージョン 5.1.2 以前 (PHP 4.x を含む) を使用する場合は、host:port 形式の bind-path を使って FastCGI プラグインを構成するようにしてください。たとえば、bind-path = “localhost:3333”のようにします。

PHP バージョン 5.1.3 以降の場合、bind-path は省略可能になります。指定する場合は、「host:port」形式を使用しないようにしてください。文字列で表します。たとえば、bind-path = “myphpbindpath”のようにします。

C/Java の使用

FastCGI 開発キットは、FastCGI C/Java アプリケーションを開発するための API を提供します。このキットは http://www.fastcgi.com/devkit/doc/fcgi-devel-kit.htm からダウンロードできます。

ダウンロードした FastCGI 開発キットをビルドするには、次の手順を実行します。

  1. tar ファイルを展開します。このアクションにより、fcgi-devel-kit という名前の新しいディレクトリが作成されます

  2. fcgi-devel-kit ディレクトリ内で次の一連のコマンドを実行します。

    1. ./configure

    2. make

C を使って FastCGI アプリケーションを記述する方法の詳細については、http://www.fastcgi.com/devkit/doc/fcgi-devel-kit.htm#S3 を参照してください

Java を使って FastCGI アプリケーションを記述する方法の詳細については、http://www.fastcgi.com/devkit/doc/fcgi-java.htm を参照してください