FastCgiAccessChecker ディレクティブは、FastCGI アプリケーションをディレクトリー・アクセス当たりの妥当性検査プログラムとして定義するために使用します。Apache Access の段階では、ユーザー認証が先に行なわれるので、要求されたリソースへのアクセスを使用可能 (使用不可) にするための判別が、その要求で実行依頼された HTTP ヘッダーに基づいて行なわれます。FastCGI ベースの許可機能は、アクセス妥当性検査の判断で動的な構成要素 (時刻またはドメインのアカウントが最新かどうかなど) がある時にはとくに有用です。
FastCGI アプリケーション・ファイル名に対応する動的または静的外部サーバー定義がない場合には、 これは動的な FastCGI アプリケーションとして開始されます。 ファイル名がスラッシュ (/) で始まっていない場合には、それは ServerRoot と相対していると想定されます。
FastCgiAccessChecker は Directory
または Location
コンテナー内で使用されます。
<Directory htdocs/protected>
FastCgiAccessChecker fcgi-bin/access-checker
</Directory>
mod_fastcgi は、通常 CGI/FastCGI 要求処理プログラムで使用可能となるほとんどすべての標準環境変数を送信します。正常応答 (状況: 200) の FastCGI アクセス・チェッカー・アプリケーションによって戻されるすべてのヘッダーは、環境変数としてサブプロセス (CGI/FastCGI 呼び出し) に渡されます。正常に実行されなかった応答に戻されたすべてのヘッダーは、そのクライアントに渡されます。FastCGI 仕様に従った動作は "-compat" オプションによって入手することができます。
mod_fastcgi は環境変数 "FCGI_APACHE_ROLE" を "ACCESS_CHECKER" に設定して、どの (Apache 特定の)許可機能のフェーズを実行しているかを指示します。
FastCGI 許可機能アプリケーションからのカスタム障害応答はサポートされていません。作業の ErrorDocument ディレクティブを参照してください (FastCGIアプリケーションはその文書を実行することができます)。
FastCgiAccessCheckerAuthoritative ディレクティブを明示的に「オフ」に設定することによって、FastCGI アプリケーションがアクセスの許可に失敗した場合に、アクセス検査を低レベルのモジュール (「構成」ファイルおよび modules.c ファイルに定義された時) に渡すことができます。
デフォルトによって、制御権は渡されずに、失敗したアクセス検査は「禁止」応答となります。デフォルトを使用不可にする場合には、十分に考慮する必要があります。
FastCgiAuthenticator ディレクティブは、FastCGI アプリケーションをディレクトリー当たりの認証機能として定義するために使用します。認証機能は、指定されたユーザー名およびパスワードを、通知済みユーザーおよびパスワードのリストまたはデータベースと突き合わせて、そのリクエスターが指示する内容のユーザーであることを検査します。FastCGI 基本認証機能は、ユーザー・データベースが既存の独立プログラム内で保守されているか、あるいは Web サーバー以外のマシン上に常駐する時にはとくに有用です。
FastCGI アプリケーション・ファイル名に対応する動的または静的外部サーバー定義がない場合には、 これは動的な FastCGI アプリケーションとして開始されます。 ファイル名がスラッシュ (/) で始まっていない場合には、それは ServerRoot と相対していると想定されます。
FastCgiAuthenticator は Directoryまたは Location のコンテナー内で使用され、 AuthType および AuthName ディレクティブが含まれていなければなりません。サポートされているのは、「基本設定」 ユーザー認証タイプだけです。適切に作動させるには、これは必須または FastCgiAuthorizer ディレクティブによって実行する必要があります。
<Directory htdocs/protected>
AuthType Basic
AuthName ProtectedRealm
FastCgiAuthenticator fcgi-bin/authenticator
require valid-user
</Directory>
mod_fastcgi
は、通常 CGI/FastCGI 要求処理プログラムで使用可能となるほとんどすべての標準環境変数を送信します。正常応答 (状況: 200) の FastCGI 認証アプリケーションによって戻されるすべてのヘッダーは、環境変数としてサブプロセス (CGI/FastCGI 呼び出し) に渡されます。正常に実行されなかった応答に戻されたすべてのヘッダーは、そのクライアントに渡されます。FastCGI 仕様に従った動作は "-compat
" オプションによって入手することができます。
Mod_fastcgi
は環境変数 "FCGI_APACHE_ROLE"
を "AUTHENTICATOR" に設定して、どの (Apache 特定の) 許可機能フェーズを実行しているかを指示します。
FastCGI 許可機能アプリケーションからのカスタム障害応答はサポートされていません。 作業の ErrorDocument ディレクティブを参照してください ( FastCGI アプリケーションはその文書を実行することができます)。
FastCgiAuthenticatorAuthoritative
ディレクティブを明示的に Off に設定することによって、FastCGI アプリケーションがユーザーの認証に失敗した場合に、認証を低レベルのモジュール ( 「構成」
および modules.c
ファイルに定義された時) に渡すことができます。
これは一般に、少ない (管理関連の) ユーザーが含まれる保護された AuthUserFile
との組み合わせで使用されます。
デフォルトによって制御権は渡されずに、不明のユーザーは「許可が必要」の応答となります。 デフォルトを使用不可にする時には、十分に考慮する必要があります。
FastCgiAuthorizer
ディレクティブは、
FastCGI アプリケーションをディレクトリーごとの許可機能として定義するために使用されます。
許可機能は、認証されたユーザーが要求されたリソースへのアクセスを許可されているかどうかを検証します。
FastCGI ベースの許可機能は、
主に時間指定または、ユーザーが料金を支払っているかどうかなどの権限判断のための動的コンポーネントがある場合に有効です。
FastCGI アプリケーション filename に対応する動的または静的外部サーバー定義がない場合には、これは動的な FastCGI アプリケーションとして開始されます。 ファイル名がスラッシュ (/) で始まっていない場合には、それは ServerRoot と相対していると想定されます。
FastCgiAuthorizer
は、Directory
または Location
のコンテナー内で使用され、 AuthType および AuthName ディレクティブが含まれていなければなりません。
正常に作動させるためには、FastCgiAuthenticator、AuthUserFile、AuthDBUserFile または AuthDBMUserFile とともに使用する必要があります。
<Directory htdocs/protected>
AuthType Basic
AuthName ProtectedRealm
AuthDBMUserFile conf/authentication-database
FastCgiAuthorizer fcgi-bin/authorizer
</Directory>
mod_fastcgi
は CGI/FastCGI 要求処理プログラムで通常使用できる標準環境変数をほぼすべて送信します。 正常応答 (状況: 200) の FastCGI 認証アプリケーションによって戻されるすべてのヘッダーは、環境変数としてサブプロセス (CGI/FastCGI 呼び出し) に渡されます。 正常に実行されない応答で戻されるすべてのヘッダーはクライアントに戻されます。 FastCGI 仕様に従った動作は "-compat
" オプションを使用して入手することができます。
Mod_fastcgi
は環境変数 "FCGI_APACHE_ROLE"
を "AUTHENTICATOR" に設定して、どの (Apache 特定の) 許可機能フェーズを実行しているかを指示します。
FastCGI 許可機能アプリケーションからのカスタム障害応答は、サポートされていません。 作業のErrorDocument ディレクティブを参照してください (FastCGI アプリケーションはその文書を実行することができます)。
FastCgiAuthenticatorAuthoritative
ディレクティブを明示的に Off に設定することによって、FastCGI アプリケーションがユーザーの認証に失敗した場合に、認証を低レベルのモジュール ( 「構成」
および modules.c
ファイルに定義された時) に渡すことができます。
これは一般に、少ない (管理関連の) ユーザーが含まれる保護された AuthUserFile
との組み合わせで使用されます。
デフォルトによって制御権は渡されずに、不明のユーザーは「許可が必要」の応答となります。 デフォルトを使用不可にする時には、十分に考慮する必要があります。
FastCgiConfig
ディレクティブは、すべての 動的 FastCGI アプリケーションのデフォルト・パラメーターを定義します。このディレクティブは静的または外部アプリケーションには影響しません。
動的アプリケーションはサーバー初期設定では始動されませんが、要求時に始動されます。 要求が多量の場合には、追加のアプリケーション・インスタンスが開始されます。要求が少なくなると、アプリケーシ ョン・インスタンスは強制終了されます。多くのオプションがこのプロセスを管理します。
オプション は次の1つとすることができます (大文字小文字を区別しない) 。
appConnTimeout n (0 秒)
connect()
を使用しなければならないことを指示するためには 0 です。
タイムアウトになった場合には、 SERVER_ERROR の結果となります。 非ゼロの値では、これは
非ブロック化 connect()
によって戻されるファイル記述子に書き込むために select()
で使用する時間です。 非ブロック化 connect()
は多くのプラットフォームでは厄介なものになります。 また、-idle-timeout も参照してください。これは、同様な結果となりますが、可搬性がよくなります。idle-timeout n (30 秒)
error
LogLevel
に) 前に FastCGI アプリケーションの非活動が許される秒数です。 非活動タイマーが適用されるのは、接続が FastCGI アプリケーションで保留中になっている場合だけです。 要求がアプリケーションへの待ち行列上にあるが、そのアプリケーションがこの期間内に (書き込みまたはフラッシュによって) 応答しない場合には、その要求は打ち切られます。 アプリケーションとの通信は完了しましたが、クライアントとの通信は完了していない (応答がバッファーに入れられる) 場合には、タイムアウトは適用されません。autoUpdate none
-restart
と一緒に使用すると、未解決の問題 (バグ) となる場合があります。gainValue n (0.5)
gainValue
) によって位取りされるので、これをより小さい重みにすると、現在値と比較してより重くなり、これは gainValue
によって位取りされます。initial-env name[=value]
none
init-start-delay n (1 秒)
killInterval n (300 秒)
listen-queue-depth n (100)
maxClassProcesses n (10)
maxProcesses n (50)
minProcesses n (5)
multiThreshhold n (50)
singleThreshhold
が代わりに使用されます。pass-header header none
priority n (0)
setpriority()
を使用して) 割り当てられる処理優先順位。processSlack n (5 秒)
maxProcesses - processSlack
を超えた場合には、処理マネージャーは強制終了方針を起動します。 これは、maxProcesses
に達する前に、もっとも活動していないアプリケーション・インスタンスの 一部を強制終了することによって、ロードが多い時のパフォーマンスを改善するためです。restart none
restart-delay n (5 秒)
singleThreshhold n (0)
startDelay n (3 秒)
startDelay
は appConnTimeout
より小さくなければなりません。updateInterval n (300 秒)
appConnTimeout n (0 秒)
connect()
を使用しなければならないことを指示するためには 0 です。
タイムアウトになった場合には、 SERVER_ERROR の結果となります。 非ゼロの値では、これは
非ブロック化 connect()
によって戻されるファイル記述子に書き込むために select()
で使用する時間です。 非ブロック化 connect()
は多くのプラットフォームでは厄介なものになります。 また、-idle-timeout も参照してください。これは、同様な結果となりますが、可搬性がよくなります。idle-timeout n (30 秒)
error
LogLevel
に) 前に FastCGI アプリケーションの非活動が許される秒数です。 非活動タイマーが適用されるのは、接続が FastCGI アプリケーションで保留中になっている場合だけです。 要求がアプリケーションへの待ち行列上にあるが、そのアプリケーションがこの期間内に (書き込みまたはフラッシュによって) 応答しない場合には、その要求は打ち切られます。 アプリケーションとの通信は完了しましたが、クライアントとの通信は完了していない (応答がバッファーに入れられる) 場合には、タイムアウトは適用されません。flush none
mod_fastcgi
はデータをバッファーに入れます。host hostname:port none
-socket
オプションと -host
オプションは相互に排他的です。Pass-header header none
socket filename none
FastCgiIpcDir
と対応しています。
-socket
と -port
のオプションを同時に使用することはできません。
UNIX: FastCgiIpcDir
ディレクティブは、アプリケーションと Web サーバーとの通信に使用される UNIX ソケット・ファイルを保管 (および検索、外部 FastCGI アプリケーションの場合) する場所として
directory を指定します。このディレクトリーがスラッシュ (/) で始まっていない場合には、それは ServerRoot と相対していると想定されます。このディレクトリーが存在しない場合には、適切な許可によってこれを作成しようとします。ローカル・ファイル・システム上にないディレクトリーは、指定しないでください。デフォルト・ディレクトリー (または /tmp
中の別のディレクトリー) を使用する場合、ユーザー・システムが /tmp
から定期的にファイルを削除する場合に、mod_fastcgi
が中断します。
Windows NT: FastCgiIpcDir ディレクティブは、アプリケーションと Web サーバーとの通信に使用される名前付きパイプのルートとして name を指定します。この name は \\.\pipe\pipename の形式でなければなりません。pipename の部分には、バックスラッシュ以外の任意の文字を含めることができます。
FastCgiIpcDir
ディレクティブの前には、FastCgiServer
または FastCgiExternalServer
の任意のディレクティブが先行していなければなりません (これは UNIX ソケットを使用する)。このディレクトリーは Web サーバーが読み取り、書き込み、および実行できるものでなければなりませんが、その他では誰にもアクセスできないはずです。
FastCgiServer
ディレクティブは filename を静的 FastCGI アプリケーションとして定義します。ファイル名がスラッシュ (/) で始まっていない場合には、それは ServerRoot と相対していると想定されます。
デフォルトによって、処理マネージャーは、アプリケーションの1つのインスタンスを下記に (括弧内に) 指定されたデフォルト構成で開始します。何らかの理由で静的アプリケーション・インスタンスが消えたならば、 mod_fastcgi
は別のものを spawn してこれを置き換えて、そのイベントを記録します (ウォーム LogLevel
で)。
オプション は次の1つとすることができます (大文字小文字を区別しない) 。
appConnTimeout n (0 秒)
connect()
を使用しなければならないことを指示するためには 0 です。
タイムアウトになった場合には、 SERVER_ERROR の結果となります。 非ゼロの値では、これは
非ブロック化 connect()
によって戻されるファイル記述子に書き込むために select()
で使用する時間です。 非ブロック化 connect()
は多くのプラットフォームでは厄介なものになります。 また、-idle-timeout も参照してください。これは、同様な結果となりますが、可搬性がよくなります。idle-timeout n (30 秒)
error
LogLevel
に) 前に FastCGI アプリケーションの非活動が許される秒数です。 非活動タイマーが適用されるのは、接続が FastCGI アプリケーションで保留中になっている場合だけです。 要求がアプリケーションへの待ち行列上にあるが、そのアプリケーションがこの期間内に (書き込みまたはフラッシュによって) 応答しない場合には、その要求は打ち切られます。 アプリケーションとの通信は完了しましたが、クライアントとの通信は完了していない (応答がバッファーに入れられる) 場合には、タイムアウトは適用されません。initial-env name[=value] none]
none
init-start-delay n(1 秒)
Flush none
mod_fastcgi
はデータをバッファーに入れます。Listen-queue-depth n (100)
Pass-header header none
processes n (1)
Priority n (0)
setpriority()
を使用して) 割り当てられる処理優先順位。port n none
-socket
と -port
のオプションを同時に使用することはできません。Restart-delay n (5 秒)
Socket filename (gen'd)
FastCgiIpcDir
によって指定されたディレクトリー中にソケットを作成します。 このオプションによって、アプリケーションは同じマシン上の、または外部 FastCGI アプリケーション定義 (FastCgiExternalServer
) を介して他のアプリケーション (たとえば、cgi-fcgi
)にアクセスできるようになります。 -socket
または -port
のいずれのオプションも指定しない場合には、モジュールは UNIX ドメイン・ソケット・ファイル名を生成します。 -socket
と -port
のオプションを同時に使用することはできません。
FastCgiSuexec
ディレクティブは、suexec-wrapper のサポートを使用可能にするために使用されます。 FastCgiSuexec
では、Apache (CGI の場合) で suexec が使用可能でなければなりません。 Apache で使用するのと同じ suexec-wrapper を使用するには、FastCgiSuexec
を On に設定してください。 別の suexec-wrapper を使用するには、その suexec-wrapper の filename を指定してください。 このファイル名がスラッシュ (/) で開始していない場合には、これは ServerRootと対応したものと想定されます。
FastCgiSuexec
が使用可能な時には、静的または外部 FastCGI アプリケーション定義の場所が重要です。 これは、それを定義した仮想サーバーの User
および Group
ディレクティブからそのユーザーおよびグループを継承します。 User
および Group
ディレクティブは FastCGI アプリケーション定義の前になければなりません。 ここでは、
それを定義した仮想サーバーに対する FastCGI アプリケーションを制限 しない ので、アプリケーションは同じユーザーおよびグループで任意の仮想サーバーから要求をサービスすることができる、ことに注意してください。 正しいユーザーおよびグループで実行中の既存の突き合わせ定義なしで FastCGI アプリケーションの要求を受信した場合には、そのアプリケーションの動的インスタンスが正しいユーザーおよびグループで開始されます。 これによって、異なったユーザー / グループで同じアプリケーションの複数のコピーを実行できるようになります。 これが問題になる場合には、他の仮想サーバーからのアプリケーションへのナビゲーションを不可能にするか、あるいは同じユーザーおよびグループで仮想サーバーを構成してください。
(セキュリティーに関して完全に理解するために) suexec の詳細については Apache の文書を参照してください。