PHP は、サポート対象の 3 つの API (CGI、NSAPI、および FastCGI) のいずれかを使用することで、Sun Java System Web Server で使用できます。PHP は、PHP グループから入手可能なページスクリプト言語です。PHP グループは、サポート対象の 3 つの API のいずれかを使用して PHP ソフトウェアを設定する方法を Web サイト (http://www.php.net) で詳細に説明しています。
CGI API は、使用できる中ではもっとも安定したインタフェースですが、CGI に固有のパフォーマンスの制限を受けます。
NSAPI は、Sun Java System Web Server のネイティブ API を利用し、Web Server のメモリー内で PHP ソフトウェアを実行します。この設定により最高のパフォーマンスが提供されますが、スレッドセーフでない PHP モジュールが使用されるとサーバーがクラッシュする危険があります。
FastCGI インタフェースは、パフォーマンスと安定性を両立させます。FastCGI は PHP ソフトウェアが要求を処理した後も、Web Server のメモリー外で継続して実行できるようにします。不安定な PHP モジュールが使用されても、Web Server がクラッシュすることはありません。このため、Sun は、PHP ソフトウェアでは FastCGI インタフェースを使用することをお勧めします。
FastCGI インタフェースは、http://www.sun.com/download/products.xml?id=42d693c3 から入手可能な FastCGI アドオンをインストールすると、Web Server でサポートされます。
PHP ソフトウェアは、FastCGI プロセスとして実行する場合、PHP プロセスのライフサイクルを制御するために 2 つの環境変数を使用します。
PHP_FCGI_CHILDREN は、要求に対する応答として作成される PHP プロセスの数を決定します。
PHP_FCGI_MAX_REQUESTS は、PHP プロセス自体を終了して新しい PHP プロセスに置き換えられるまでに応答できる要求の数を決定します。
Sun では、PHP_FCGI_CHILDREN の使用は推奨しません。代わりに FastCGI アドオンの設定パラメータ min-procs で PHP プロセスの最小数を制御することをお勧めします。