FastCGI プラグインが提供するサーバーアプリケーション関数 (SAF) は、次のとおりです。
FastCGI SAF の各種パラメータと「error-reason」文字列については、次の各節で説明します。
auth-fastcgi は PatchCheck 関数です。この関数は、「オーソライザ」FastCGI アプリケーションに要求を転送するために使用されます。承認が成功すると、リターンコード 200 が送信されます。それ以外の場合は、「オーソライザ」FastCGI アプリケーションからの応答がユーザーエージェントに送り返されます。
FastCGI のロールの詳細については、http://www.fastcgi.com/devkit/doc/fcgi-spec.html#S6 を参照してください。
auth-fastcgi SAF が受け付けるパラメータについては、 「FastCGI SAF パラメータ」を参照してください。
次の obj.conf コード例は、auth-fastcgi の使用方法を示したものです。
PathCheck fn="auth-fastcgi" app-path="/usr/bin/perl" app-args="/fastcgi/apps/auth/SimpleAuth.pl" bind-path="localhost:3432".
responder-fastcgi は Service 関数です。この関数は、「レスポンダ」として機能する FastCGI アプリケーションに要求を転送するために使用されます。レスポンダアプリケーションからの応答は、ユーザーエージェントに送り返されます。FastCGI のロールの詳細については、http://www.fastcgi.com/devkit/doc/fcgi-spec.html#S6 を参照してください。
responder-fastcgi SAF が受け付けるパラメータの一覧については、 「FastCGI SAF パラメータ」 を参照してください。
次の obj.conf コード例は、responder-fastcgi の使用方法を示したものです。
Service fn="responder-fastcgi" app-path="/fastcgi-enabled-php-installation/bin/php" bind-path="localhost:3433" app-env="PHP_FCGI_CHILDREN=8" app-env="PHP_FCGI_MAX_REQUEST=500" .
filter-fastcgi は Service 関数です。この関数は、「フィルタ」タイプの FastCGI アプリケーションに要求を転送するために使用されます。「フィルタ」アプリケーションは、HTTP 要求に関連付けられた情報と、サーバー上に格納されたファイルからのデータを受け取ります。次に、「フィルタ」アプリケーションは、「フィルタリング」されたバージョンのデータストリームを応答として生成します。これがユーザーエージェントに送り返されます。FastCGI のロールの詳細については、http://www.fastcgi.com/devkit/doc/fcgi-spec.html#S6 を参照してください。
filter-fastcgi SAF が受け付けるパラメータの一覧については、 「FastCGI SAF パラメータ」 を参照してください。
次の obj.conf コード例は、filter-fastcgi の使用方法を示したものです。
Service fn="filter-fastcgi" app-path="/fastcgi/apps/filter/SimpleFilter" bind-path="localhost:3434" app-env="LD_LIBRARY_PATH=/fastcgi/fcgi-2.4/libfcgi/.libs" min-procs=2
error-fastcgi は Error 関数です。error-fastcgi SAF は、FastCGI プラグインに固有のエラーを処理します。一方、この関数は HTTP エラーを処理しません。エラー時に特定のページを表示するか特定の URL に要求をリダイレクトするように、FastCGI プラグインを構成することができます。
error-fastcgi SAF が受け付けるパラメータの一覧については、 「FastCGI SAF パラメータ」を参照してください。
次の obj.conf コード断片は、error-fastcgi の使用方法を示したものです。
Error fn="error-fastcgi" error-reason="Invalid Parameters" error-url="http://www.foo.com/errorPage.html"
error-fastcgi パラメータの詳細については、「FastCGI SAF パラメータ」を参照してください。
FastCGI プラグインの SAF「auth-fastcgi」、「responder-fastcgi」、および「filter-fastcgi」はすべて、特に明記されていないかぎり、次のパラメータを受け付けます。
bind-path - (省略可能) UNIX ドメインソケット名、名前付きパイプ、形式「host:port」のいずれかになります。「app-path」パラメータの説明のなかで、「bind-path」パラメータの使用方法が説明されています。
app-path - (省略可能) 要求を処理する FastCGI アプリケーションのパス。その機能は次のように、bind-path パラメータの値に依存します。
app-path のみが指定された場合、プラグインは、プラグインによって作成された UNIX ドメインソケットまたは名前付きパイプを待機する FastCGI アプリケーションを作成します。
app-path と bind-path がどちらも指定された場合、プラグインは、指定された FastCGI アプリケーションのプロセスを起動し、それを指定された bind-path にバインドします。
bind-path のみが指定された場合、FastCGI アプリケーションはリモートで実行されているものとみなされます。このため、プラグインは、FastCGI アプリケーションのプロセスを起動しません。
「app-path」、「 bind-path」がどちらも指定されなかった場合、プラグインはログにエラーメッセージを記録します。
app-args — (省略可能) FastCGI アプリケーションプロセスへの引数として渡される値。app-args パラメータは複数指定できます。app-args パラメータを複数指定する場合の形式は、app-args="value" app-args="value" ... です
app-env - (省略可能) FastCGI アプリケーションプロセスに環境変数として渡される値ペア。「app-env」パラメータは複数指定できます。app-env パラメータを複数指定する場合の形式は、app-env="name=value" app-env="name=value" です。既存の Web Server 環境変数は、FastCGI プログラムには渡されません。このため、app-env を使用して、FastCGI プログラムの環境変数を明示的に設定してください。
PHP プログラムをコンパイルする場合は、ライブラリファイルが正しく構成されていることを確認してください。
たとえば、FastCGI アプリケーションとしてコンパイルした PHP バイナリを読み込む場合は、依存関係のあるすべてのライブラリファイル /usr/local/lib および /usr/local/mysql/lib が LD_LIBRARY_PATH にエクスポートされていることを確認する必要があります。
app-env="LD_LIBRARY_PATH=/usr/local/lib:/usr/local/mysql/lib"
Windows の場合は、app-env="Path=c:/php/lib:c:/mysql/lib" になります。
app-env を使用して、ほかの環境変数を PHP アプリケーションにエクスポートすることもできます。 php.ini ファイルの場所は、app-env="PHPRC=<directory path>" のように指定できます。
PHP を使用する場合は、PHP_FCGI_CHILDREN および PHP_FCGI_MAX_REQUESTS により大きな値を指定して、FastCGI に対する PHP の構成時により高い優先順位を PHP に与える必要があります。
min-procs - (省略可能) 作成すべき FastCGI アプリケーションプロセスの最小数を指定する整数。デフォルトは 1 です。
max-procs - (省略可能) 同時に作成可能な FastCGI アプリケーションプロセスの最大数を指定する整数。この整数値は、min-procs と等しいかそれより大きくなければいけません。デフォルトは 1 です。
現在のところ、デフォルト値はパラメータとして使用できません。この問題については詳しくは、『Sun Java System Web Server 7.0 Update 3 リリースノート』の「FastCGI 」を参照してください。
reuse-connection - (省略可能) FastCGI アプリケーションへの接続が再利用されるかどうかを決定するブール値。False (0、false、no) は、要求が終了するたびに FastCGI アプリケーションへの接続が閉じられることを示します。True (1、true、yes) は、既存の接続が新しい要求で再利用されることを示します。デフォルトは false です。connection-timeout も参照してください。
connection-timeout - (省略可能) 「reuse-connection」が True に設定されている場合に、この値はプール内の接続のタイムアウト値を秒単位で指定します。この指定された期間の間、ある接続がアイドル状態になっていると、プラグインはその接続を閉じます。このパラメータのデフォルト値は 5 秒です。reuse-connection も参照してください。
resp-timeout - (省略可能) FastCGI サーバー応答タイムアウトを秒単位で表す整数。指定された期間の間、FastCGI アプリケーションから応答がなかった場合、その要求は破棄されます。このパラメータのデフォルト値は 5 分です。
restart-interval - (省略可能) FastCGI アプリケーションが次に再起動されるまでの時間間隔 (分) を表す整数。このパラメータのデフォルト値は 60 分 (1 時間) です。このパラメータの値をゼロに設定すると、FastCGI アプリケーションが強制的に再起動されることがなくなります。
req-retry - (省略可能) FastCGI アプリケーションが要求を拒否した場合にプラグインが要求を再送信すべき回数を表す整数。このパラメータのデフォルト値はゼロです。
listen-queue - (省略可能) ソケットの待機キューサイズを指定する整数。このパラメータのデフォルト値は 256 です。
rlimit_cpu — FastCGI プログラムの使用する CPU の最大時間 (秒) を指定します。指定できるのは、現在の (弱い) 制限値だけです。このパラメータに対して最大の (強い) 制限値は適用されずに、無視されます。
パラメータ chroot、user、group、nice 、chdir、rlimit_as、rlimit_core 、および rlimit_nofile は UNIX プラットフォームのみに適用されます。Windows プラットフォームでは、それらのパラメータは無視されます。
chroot - (省略可能、UNIX のみ) FastCGI サーバーアプリケーションプロセスの chroot を実行するときのルートディレクトリを設定するために使用されます。
user - (省略可能、UNIX のみ) FastCGI アプリケーション実行時に使用するユーザー ID を指定します。デフォルトは、Web Server のユーザー ID になります。
group - (省略可能、UNIX のみ) 指定されたグループの下で FastCGI アプリケーションが実行されます。デフォルトは、Web Server のグループになります。
nice - (省略可能、UNIX のみ) FastCGI アプリケーションプロセスの nice/priority 値を指定します。
chdir - (省略可能、UNIX のみ) 実行開始前に、chroot し chdir で移動するディレクトリを指定します。
rlimit_as - (省略可能、UNIX のみ) CGI プログラムのアドレス空間の最大値 (バイト) を指定します。現在の (弱い) 制限値と最大の (強い) 制限値の両方を、コンマで区切って指定できます。弱い制限値を最初に指定してください。制限値が 1 つだけ指定された場合は、両方の制限値がこの値に設定されます。
rlimit_core - (省略可能、UNIX のみ) CGI プログラムのコアファイルサイズの最大値を指定します。値 0 を指定すると、書き込みコアが無効になります。 現在の (弱い) 制限値と最大の (強い) 制限値の両方を、コンマで区切って指定できます。弱い制限値を最初に指定してください。制限値が 1 つだけ指定された場合は、両方の制限値がこの値に設定されます。
rlimit_nofile - (省略可能、UNIX のみ) CGI プログラムのファイル記述子の最大数を指定します。現在の (弱い) 制限値と最大の (強い) 制限値の両方を、コンマで区切って指定できます。弱い制限値を最初に指定してください。制限値が 1 つだけ指定された場合は、両方の制限値がこの値に設定されます。
error-fastcgi サーバーアプリケーション関数 (SAF) は次のパラメータを受け付けます。
error-url - 障害またはエラーが発生したときに表示するページの URI または URL を指定します。このパラメータの値は、絶対パス、ドキュメントルートからの相対パス、URL、URI のいずれかになります。
error-reason - (省略可能) FastCGI プロトコルのエラーを表す文字列。この文字列は、プラグインエラー発生時に表示するエラー URL を区別するために使用されます。
この節では、有効なすべての「error-reason」文字列とその説明の一覧を示します。
「Missing or Invalid Config Parameters」: app-path および bind-path が指定されていない。
「Stub Start Error」: Fastcgistub プロセスの起動に失敗した。
「Stub Connection Failure」: Fastcgistub に接続できない。
「No Permission」: FastCGI アプリケーションまたは Fastcgistub が実行権を持っていない。
「Stub Request Handling Error」: 要求をスタブに送信できない、スタブから要求に対する無効な応答を受信したり応答を受信しなかった、など。
「Set Parameter Failure」: ユーザー、グループ、ディレクトリ変更、優先順位などの設定に失敗した場合。
「Invalid user and/or group」: ユーザーまたはグループが無効である場合。
「Server Process Creation Failure」: FastCGI アプリケーションの実行に失敗したか、指定されたアドレスに FastCGI アプリケーションをバインドできない。
「Fastcgi Protocol Error」: 無効な FastCGI バージョンまたはロールを含むヘッダーが、FastCGI アプリケーションに含まれている。
「Internal Error」: フィルタアプリケーションに送信するファイルを開くことができない、あるいはその他の未知のエラーが発生した。