IIS 6 用 FastCGI 拡張機能の構成

公開日: 2007 年 12 月 5 日 (作業者: IIS チーム (英語))

更新日: 2009 年 10 月 7 日 (作業者: IIS チーム (英語))

はじめに

IIS では、最初のバージョンから CGI ("Common Gateway Interface") をサポートしてきました。CGI は、その基本的な形式において、IIS などのインフォメーション サーバーと外部アプリケーションとの連携を実現する標準ベース(英語)のプロトコルです。FastCGI は、CGI のスケーラビリティの面での短所に対応するために市場に導入されました。

この記事では、以前のバージョンの CGI の短所について説明し、Internet Information Services 6 での FastCGI 拡張機能の必要性について定義します。また、この記事では、FastCGI 拡張機能の構成設定についても説明しています。

IIS 6.0 および IIS 5.1 の CGI、ISAPI、FastCGI

CGI

冒頭で述べたように、CGI はインフォメーション サーバーと外部アプリケーションとの連携を実現するプロトコルです。HTTP はステートレスなプロトコルなので、当然、HTTP 上で行われた要求により、外部アプリケーションの新しいインスタンスが新しいオペレーティング システム プロセスに作成されます。

新しいプロセス内で、stdin ハンドルはクライアントから要求データを受信するように再マッピングされ、stdout ハンドルはクライアントに応答データを書き込むように再マッピングされ、コマンド ラインおよびオペレーティング システムの環境変数は他のサーバーや要求に関する情報を CGI プロセスに提供するように設定されます。

IIS での CGI の短所は、Windows オペレーティング システム上で比較的負荷の高い新規プロセス起動が行われることです。HTTP 要求ごとに、新しいプロセスを作成し、CGI アプリケーション内で作業を実行してから、プロセスをシャットダウンします。非常に軽量なプロセスが作成されるオペレーティング システムでは、パフォーマンスは CGI アプリケーション内で実行される作業に拘束されます。Windows などのプロセスの作成に高い負荷がかかるオペレーティング システムでは、CGI アプリケーションのパフォーマンスは新しいプロセスの作成に拘束されます。こうした理由から、CGI は Unix ベースのプラットフォームでは非常に優れたパフォーマンスを実現しますが、IIS では推奨されていません。

ISAPI

IIS は、Windows での CGI の短所がありますが、他の Web サーバーのパフォーマンスに匹敵し、多くの場合凌駕する機能を備えています。その理由は ISAPI ("Internet Server Application Programming Interface") にあります。CGI とは異なり、ISAPI は Web サーバー プロセスに対して完全に内部的なものです。ISAPI アプリケーションに対して新しい要求が行われた場合、新しいプロセスは作成されません。その代わり、Web サーバーでは Web サーバー プロセスに読み込まれた DLL 内のエントリ ポイントを呼び出します。オペレーティング システムのスレッド モデルがどのように機能しているかを把握したうえで、ISAPI アプリケーションを記述すると、非常に高速なパフォーマンスが実現します。

長年にわたり、PHP は ISAPI と CGI 実装の両方を使用して IIS 上で実行されてきました。しかし、どちらの実装も、IIS 上で実行する場合にデメリットとなります。CGI アプリケーションすべてに関して、PHP の CGI 実装は、Windows のプロセス作成のパフォーマンス特性によるデメリットがあります。ISAPI 実装は、スレッドの問題によるデメリットがあります。

PHP が ISAPI として実行される場合、高度にマルチスレッドな環境の Web サーバー プロセス内部で実行されます。PHP 実装はスレッド セーフであるのに対し、PHP の一般的な拡張機能の多くは非スレッド セーフです。非スレッド セーフな PHP 拡張機能を ISAPI と組み合わせて使用する場合、サーバーの動作が不安定になる可能性があります。したがって、ISAPI PHP 実装環境で実行できないアプリケーションが多くありますが、それ以外のアプリケーションはこの環境で良好に実行されます。

FastCGI

FastCGI は、パフォーマンスと安定性を兼ね揃えたソリューションになります。FastCGI を使用すると、1 つの要求が完了した後も、別の要求に対してプロセスを再利用できるように、ホスト側の CGI プロセスをアライブの状態にしておくことができます。プロセスは何度も再利用できるので、Windows 上に作成されるプロセスの負荷について懸念する必要はなくなります。

通常の CGI と FastCGI の技術的な違いは、FastCGI には FastCGI プロトコルを CGI が使用する stdinstdout、および他のリソースにマッピングする層がプロセスにあります。サードパーティ製のライブラリの多くは、小さな変更を加えるだけで、既存の CGI ソース コードにリンクを設定し、FastCGI と連携して機能します。

IIS 上の FastCGI は、ISAPI の上で実行され、アプリケーション、アプリケーション マネージャー、および FastCGI プロトコル サポート コードの 3 つの部分に分類されます。

Web サーバーでは複数の同時要求が処理されるので、使用可能なプロセスのプールを用意し、受信要求を処理する準備を整えておく必要があります。FastCGI ハンドラーでは、このプロセスのプールのことを "アプリケーション" と呼びます (IIS アプリケーションと混同しないように、この記事では "プロセス プール" という用語を使用します)。プロセス プールには、管理が必要なさまざまなプロパティがあります。たとえば、プール内のプロセスの数やプロセスがシャットダウンおよびリサイクルする前に受け入れ可能な要求の数を指定する場合があります。

FastCGI ハンドラーでは、複数のプロセス プールがサポートされています。これは、1 台のサーバーで複数の種類の FastCGI を実行する必要がある場合に備えるためです。たとえば、PHP と Ruby の両方をサポートするサーバーを構成する場合があります。また、サーバーには複数のサイトがあり、これらのサイトに対する要求が同じプロセスを共有しないようにする場合があります。このような例に特に該当するのは、複数のサイト プロセスをそれぞれ別のユーザーとして実行する場合や 1 つのサイトが原因でプロセスが不安定になることを懸念している場合です。複数のプロセス プールを処理するサーバーの部分は、"アプリケーション マネージャー" と呼ばれます。

FastCGI の構成

スクリプト マップ

FastCGI ハンドラーに要求をルーティングするには、FastCGI ハンドラーを IIS に関連付ける必要があります。IIS 6.0 および IIS 5.1 では、この関連付けは "スクリプト マップ" と呼ばれる IIS 構成設定を使用して行われます。スクリプト マップは、ファイルの拡張子を、ファイルの種類が要求されたときに実行される ISAPI ハンドラーに関連付けます。また、スクリプト マップには、要求の処理を許可する前に、要求に関連付けられている物理ファイルが存在することを確認するオプション設定があります。セキュリティ上の理由から、これは既定の設定となっています。

ただし、場合によって、物理ファイルに関連付けられていない要求の処理を許可する必要があります。FastCGI ハンドラーが含まれる ISAPI 拡張機能は fcgiext.dll と呼ばれます。PHP 要求を許可するように FastCGI ハンドラーを構成するには、".php" 拡張子を fcgiext.dll に関連付ける新しいスクリプト マップを作成します。たとえば、Ruby の場合、".rb" 拡張子を fcgiext.dll にマッピングします。IIS 6.0 では、スクリプト マップにワイルドカードを使用することもできます。この場合、すべての要求は、1 つの ISAPI 拡張機能にルーティングされます。fcgiext.dll 用にワイルドカード スクリプト マップを作成した場合、要求されたファイルの拡張子に関係なく、すべての要求は FastCGI に送信されます。

IIS 6.0 および IIS 5.1 上で FastCGI ハンドラーのスクリプト マップを作成するには、次の手順に従います。

  1. inetmgr.exe を起動します。
  2. ローカル コンピューターのコンピューター アイコンをダブルクリックします。
  3. [Web サイト] を右クリックし、[プロパティ] を選択します。
  4. [ホーム ディレクトリ] とラベル付けされたタブをクリックします。
  5. [構成] ボタンをクリックします。
  6. [追加] ボタンをクリックします。
  7. %WINDIR%\system32\inetsrv\ に移動し、実行可能ファイルとして fcgiext.dll を選択します。
    メモ: 64 ビット プラットフォーム (WOW モード) で、この設定を行っている場合は、%WINDIR%\SysWOW64\inetsrv にある fcgiext.dll を使用する必要があります。
  8. [拡張子] に「.php」(または、FastCGI アプリケーション特有の別の拡張子) と入力します。
  9. [動詞] に「GET,HEAD,POST」と入力します。
  10. [スクリプト エンジン] と [ファイルの存在を確認する] のチェック ボックスがオンになっていることを確認します。
    Ff454029.file1_248(ja-jp,TechNet.10).png
  11. [OK] をクリックします。

FCGIEXT.ini

スクリプト マップを作成したら、FastCGI 拡張機能の設定を構成する必要があります。%windir%\system32\inetsrv\ にある fcgiext.ini ファイルを使用します。このファイルには、FastCGI ハンドラーの動作を変更するさまざまな構成のセクションおよび設定が含まれています。

実行する FastCGI アプリケーションの種類に関係なく、構成ファイルには "Types" セクションを含める必要があります。"Types" セクションの目的は、ファイルの拡張子を特定のプロセス プールおよびプロセスに関連付けることです。そのため、.php ファイルと .rb ファイルの両方とも FastCGI ハンドラーにポイントするように IIS スクリプト マップを構成する場合は、これらの拡張子が互いにどのように異なるかを FastCGI に伝えるように "Types" セクションを構成する必要があります。*.php 拡張子を PHP スクリプト プロセッサーにマッピングする構成ファイルの例を次に示します。

[Types]
php=c:\php\php-cgi.exe
php:123154536=PHP Site 1
php:123154537=PHP Site 2
*=Wildcard Mapping

このファイルの 1 行目は、PHP ファイルの拡張子が、PHP CGI アプリケーション ハンドラーである c:\php\php-cgi.exe に関連付けられていることを示します。この例の 2 行目と 3 行目では、サイト インスタンス識別子を使用して、PHP ハンドラーにアクセスできるサイトを制限します。

構成は、プロセス名、必要に応じてサイト固有のファイル拡張子、およびセクション名に基づき作成できます。セクション名では、プロセスの引数宣言がサポートされています。同じプロセス内で実行されている複数の異なるプールでは、それぞれ異なる引数が必要になる場合があるので、プロセス名だけに依存して特定のプロセス プールの設定をすべて定義することはできません。ただし、以前のテクニカル プレビュー リリースの FastCGI ハンドラーとの互換性を維持するために、実行可能ファイルのパスを使用して、次の例のように開始構成を作成します。

[c:\php\php-cgi.exe]
QueueLength=999
MaxInstances=20
InstanceMaxRequests=500

このセクションには、ExePath 設定が含まれていないので、FastCGI ハンドラーでは実行可能ファイルへのパスをセクション名に使用しています。以下は、PHP Site 1 用のセクションで、サイト ID 123154536 のサイトのみに適用されます。

[PHP Site 1]
ExePath=c:\php\php-cgi.exe
EnvironmentVars=PHPRC:C:\Inetpub\site1
MaxInstances=20
IdleTimeout=200
ActivityTimeout=20
RequestTimeout=60
InstanceMaxRequests=1000

このセクションでは、このサイト上の ".php" 要求が c:\php\php-cgi.exe に関連付けられているのがわかります。また、このサイトの環境変数 PHPRC には "C:\inetpub\site1" の値が含まれるように設定されていることがわかります。PHP Site 2 では、PHP Site 1 と異なり次のようになります。

[PHP Site 2]
ExePath=c:\php\php-cgi.exe
EnvironmentVars=PHPRC:C:\Inetpub\site2.com
MaxInstances=20
IdleTimeout=400
ActivityTimeout=40
RequestTimeout=120
InstanceMaxRequests=1000

この場合、PHPRC 環境変数に "C:\inetpub\site2" の値が含まれるように設定します。

メモ: 上記の構成設定の詳細な説明については、以下のセクションを参照してください。

FastCGI プロセス プールの設定

FastCGI 拡張機能には、FastCGI プロセス プールに関連付けられている FastCGI プロセスの動作を制御する構成設定セットがあります。このセクションでは、FastCGI でサポートされるすべての設定および形式を一覧に示します。

  • ExePath - プールで使用するプロセス実行可能ファイルへの物理パスです。
  • Arguments - 起動時にプール内の各プロセスに渡す引数です。この設定はオプションです。
  • EnvironmentVars - このプールに関連付けられているプロセス実行可能ファイルに設定された環境変数です。この設定では、次の形式が使用されます。

EnvironmentVars=Name:Value,Name:Value,',Name:Value

例:

EnvironmentVars=VARIABLE1:10000,VARIABLE2:20000

環境変数の値に空白文字が含まれている場合は、値を引用符で囲みます。環境変数の値にカンマ文字が含まれている場合は、この文字を "/" でエスケープします。同じように、環境変数の値に "/" が含まれている場合もエスケープする必要があります。

例:

EnvironmentVars=VARIABLE1:"C://PHP",VARIABLE2="1/,2/,3"
  • Protocol - この設定では、FastCGI プロセスとの通信に使用するプロトコルを指定します。使用できる値は、NamedPipe と Tcp です。指定がない場合、既定値は NamedPipe です。
  • QueueLength - この設定では、アプリケーションがビジー状態であることを示すエラーを FastCGI ハンドラーがクライアントに返すまでに、アプリケーションのプロセス プールのキューに入れることができる要求の最大値を指定します。指定がない場合、既定値は 1000 です。
  • MaxInstances - この値は、プロセス プール内のプロセス インスタンスの許容最大数です。既定値は 10 です。FastCGI ハンドラーでは、必要でない限り、この値のプロセス数を作成することはありません。アプリケーションで 2 つを超える同時要求を受信しない場合、アプリケーションでは 2 つのプロセスのみ作成されます。
  • InstanceMaxRequests - この値は、プロセスがシャットダウンおよびリサイクルするまでに、プール内のプロセスに送信できる要求数です。既定値は 1000 です。
  • IdleTimeout - この値は、プロセスが要求を処理しないアイドル状態になってからプロセスがシャットダウンするまでの秒数です。既定値は 300 秒です。
  • ActivityTimeout - FastCGI ハンドラーがプロセスからの I/O アクティビティを待機してからプロセスが終了するまでの秒数です。既定値は 30 秒です。
  • RequestTimeout - FastCGI プロセスが終了するまで、FastCGI プロセスが要求を処理できる最大時間です。既定値は 90 秒です。
  • ResponseBufferLimit - FastCGI プロセスによって処理されたデータは、応答としてクライアントに返されるまでバッファーに格納されます。このプロパティでは、このアプリケーションへの要求をバッファーに格納する応答データの量をバイト単位で指定します。**バッファーがいっぱいになるか、応答が完了するかのどちらかが最初に起こったとき、このバッファーはクライアントにフラッシュされます。指定がない場合、既定値は 4194304 (4 MB) です。
  • FlushNamedPipe - Web サーバーと通信する名前付きパイプからのデータが FastCGI アプリケーションにすべて読み込まれない場合があります。この場合、Web サーバーでは、送られてこない読み込みを待機することになり、プロセス プールのメンバーに対してデッドロックが発生します。たいてい、これは FastCGI プロセスの数が異常に存在するときに起こります。たとえば、プロセスで処理できる要求の最大数が InstanceMaxRequests 設定値よりも低くプロセス内部で想定されていることがあります。FlushNamedPipe を 1 に設定すると、FastCGI では、このような状態を引き起こす可能性のあるデータをフラッシュします。既定値は 0 です。
  • UnhealthyOnQueueFull - 1 に設定した場合、アプリケーションの要求キューがいっぱいになると、ワーカー プロセスのホストの健常性に問題があるというフラグが IIS に設定されます。IIS では、ワーカー プロセスに ping を実行するたびに健常性をチェックします。ワーカー プロセスの健常性に問題があるというフラグが設定された場合、ワーカー プロセスはホストしているすべてのものと共にリサイクルされます。指定がない場合、既定値は 0 です。

ワイルドカード マッピング

ワイルドカード マッピングには、"*" 関連付けが使用されます。これは、IIS 6.0 のみに適用されます。これにより、すべての要求に適用される特別な種類のスクリプト マップを作成できます。fcgiext.dll をワイルドカード ハンドラーとして構成する場合、この関連付けでは、要求に関連付けられている特定の構成がないすべての要求をキャッシュします。たとえば、上記の "Types" セクションでは、".py" 拡張子が構成されていません。上記の例のセクションを使用して、"foo.py" という名前のファイルを要求する場合、"*" 関連付けを使用して、要求は "Wildcard Mapping" と呼ばれるプロセス プールにルーティングされます。

次のセクションを見てください。

[Wildcard Mapping]
ExePath=c:\echo\echo.exe
QueueLength=1000
MaxInstances=20
InstanceMaxRequests=100
IgnoreExistingFiles=1
;IgnoreExistingDirectories=1

上記の例は、他のプロセス プールのセクションとほとんど同じですが、ワイルドカード スクリプト マップ用のみに使用される設定が 2 つ追加されています。そのため、これらの設定は IIS 6.0 でしか役立ちません。追加された設定は、IgnoreExistingFilesIgnoreDirectories です。

ハンドラーを実行する前に物理ファイルが存在することを確認しない IIS スクリプト マップを構成したシナリオがあるとします。このシナリオでは、物理ファイルに関連付けられていない要求を FastCGI ハンドラーで処理する一方で、IIS で引き続きディレクトリ内の他のファイルを通常どおり処理するのが便利です。このシナリオでは、これら 2 つの設定を使用して目的を達成します。

  • IgnoreExistingFiles - 1 に設定すると、FastCGI ハンドラーでは、要求された URL が物理ファイルに関連付けられているかどうかを確認します。要求が物理ファイルに関連付けられている場合、FastCGI ハンドラーでは、要求が FastCGI ハンドラーの外部で処理されるように要求の処理を遅らせます。既定値は 0 です。
  • IgnoreExistingDirectories - 1 に設定すると、FastCGI ハンドラーでは、要求された URL が物理ディレクトリに関連付けられているかどうかを確認します。要求が物理ディレクトリに関連付けられている場合、FastCGI ハンドラーでは、要求が FastCGI ハンドラーの外部で処理されるように要求の処理を遅らせます。この設定は、既定のドキュメントおよびディレクトリ一覧の処理を許可する場合に役立ちます。既定値は 0 です。

サイト固有のワイルドカード マッピング

ファイル拡張子で使用される同じサイト ID 構文を使用して、サイト固有のワイルドカード マッピングを設定することもできます。"*:12345678 = セクション名" はサイト ID 構文の例です。ファイル拡張子の検索順序は重要なので注意してください。要求が FastCGI ハンドラーに到達すると、"Types" セクションの関連付けは次の順序でチェックされます。

  1. サイト ID 固有の特定のファイル拡張子の関連付け
  2. サイト ID 固有の "*" 関連付け
  3. サイト ID が指定されていない特定のファイル拡張子の関連付け
  4. サイト ID が指定されていない "*" 関連付け

FastCGI 拡張機能 1.5 の新しい構成設定

FastCGI 拡張機能 1.5 ベータ版は増分リリースであり、Version 1.0 のすべての機能に加えて、FastCGI プロトコル実装およびプロセス管理機能におけるいくつかの重要な機能強化とバグ修正が含まれています。FastCGI 拡張機能 1.5 では、上記のセクションで説明したすべての構成設定に加え、次の新しい設定がサポートされています。

  • MonitorChangesTo - このプロパティは、変更を監視するファイルへのパスを指定します。ファイルに変更が加えられると、この FastCGI プロセス プール用に実行されている FastCGI 実行可能ファイルのリサイクルがトリガされます。このプロパティの値が空白の場合は、ファイル変更の監視は無効になります。ファイルへのパスは、ExePath で指定されるように FastCGI プロセスが格納されているフォルダーへの絶対パスまたは相対パスのいずれかになります。指定がない場合、既定値は空白です。

  • StderrMode - stderr で受信したコンテンツの処理方法を指定します。使用できる値は、次のとおりです。

    • 'ReturnStderrIn500 - FastCGI 拡張機能で応答状態コードを 500 に設定し、stderr ストリームで受信した内容を応答として送信します。この動作は、FastCGI 拡張機能 v1.0 と同じです。
    •  'ReturnStderrIn500 - FastCGI 拡張機能で応答状態コードを 500 に設定しますが、一般的な 500 応答が返されます。
    •  'IgnoreAndReturn200 - stderr 上のデータは完全に無視されます。FastCGI 拡張機能で状態コード 200 を使用して stdout で受信した内容を応答として送信します。
    • TerminateProcess - FastCGI 拡張機能で、stderr 上で何かが返されると、すぐに FastCGI プロセスを終了します。状態コード 500 の一般的な応答が HTTP クライアントに送信されます。

    指定がない場合、既定値は ReturnStderrIn500 です。

  • MaxInstances - この設定では、アプリケーション プールごとに起動できる FastCGI プロセス数の最大値を指定します。1 つのプロセスで処理される要求数は一度に 1 つのみであるため、この値は同時に処理できる要求数の最大値に等しくなります。この設定は、FastCGI 拡張機能 Version 1.0 以前から存在していましたが、FastCGI 拡張機能 Version 1.5 では、この値を 0 に設定できます。これにより、インスタンスの最大数の自動調整が有効になります。この値を 0 に設定する場合、FastCGI 拡張機能では常時、現在の CPU 負荷およびメモリの可用性を分析し、これらの分析結果に基づき、同時に実行する FastCGI プロセス インスタンスの数を増減します。

  • SignalBeforeTerminateSeconds - シャットダウン イベントを設定してから、TerminateProcess を呼び出してプロセスを強制的に終了させるまでの経過時間を秒数で指定します。既定値は 0 です。イベントは設定されず、FastCGI プロセスをいつでも強制的に終了できることを意味します。この値が 0 よりも大きい場合、FastCGI プロセスでは、子プロセスに継承されるイベントが作成されます。このイベントのハンドル値は、環境変数 _FCGI_SHUTDOWN_EVENT_ として設定されます。プロセスとの通信に使用される名前付きパイプの名前は、環境変数 _FCGI_X_PIPE_ に格納されます。

  • ActivityTimeout - この値は、FastCGI ハンドラーがプロセスからの I/O アクティビティを待機してからプロセスが終了するまでの秒数です。この設定は、FastCGI 拡張機能 Version 1.0 以前から存在していましたが、Version 1.5 では、既定値が 30 秒から 70 秒に増加しました。

FastCGI 構成スクリプトの使用

上記のセクションで説明した構成手順を簡略化して自動化するために、構成スクリプト (fcgiconfig.js) が FastCGI 拡張機能のインストールに付属しています。このスクリプトは %WINDIR%\system32\inetsrv にあります。このスクリプトでは、スクリプト マップの追加と削除、およびアプリケーション プール設定の変更を fcgiext.ini ファイルで行います。

新しい FastCGI マッピングの追加

新しい FastCGI マッピングを追加するには、 -add スイッチを使用して fcgiconfig.js を実行します。このスイッチを使用する場合は、次のパラメーターを設定する必要があります。

  • **-section:<セクション名>。**このパラメーターは、fcgiext.ini ファイルの [Types] ブロックに追加されるセクションの名前を指定します。
  • -extension:<ファイルの拡張子>。このパラメーターは、このセクションに関連付けられるファイル拡張子を指定します。
  • -path:<CGI 実行可能ファイルへのファイル パス>。 -extension パラメーターで指定された拡張子を使用してファイルの要求を処理する CGI 実行可能ファイルへの絶対ファイル パスです。
  • -site:<サイト ID>。セクションを追加する対象となるサイトを指定するオプションのパラメーターです。指定がない場合は、Web サーバー上のすべてのサイトにセクションが追加されます。
  • -norecycle。既定では、構成スクリプトにより、構成の変更を有効にするために IIS 6.0 上のすべてのアプリケーション プールがリサイクルされます。このオプションのパラメーターでは、このリサイクルが行われないようにします。

例:

>cscript fcgiconfig.js -add -section:"PHP" -extension:php -path:"C:\PHP\php-cgi.exe"

上記の例では、.php 拡張子のスクリプト マップが追加され、fcgiext.ini ファイルが更新されます。

オプションとして、スクリプト マップを適用する対象のサイトを指定できます。

>cscript fcgiconfig.js -add -section:"PHP" -extension:php -path:"C:\PHP\php-cgi.exe"  -site:1

この例では、"Default Web Site" のみにスクリプト マップが追加されます。

既存の FastCGI マッピングの削除

既存の FastCGI マッピングを削除するには、 -remove スイッチを使用して fcgiconfig.js を実行します。このスイッチを使用する場合は、次のパラメーターを設定する必要があります。

  • -section:<セクション名>。このパラメーターは、fcgiext.ini ファイルの [Types] ブロックから削除するセクションの名前を指定します。
  • -norecycle。既定では、構成スクリプトにより、構成の変更を有効にするために IIS 6.0 上のすべてのアプリケーション プールがリサイクルされます。このオプションのパラメーターを使用して、このリサイクルが行われないようにできます。

次の例では、PHP アプリケーションの FastCGI マッピングが削除されます。

>cscript fcgiconfig.js -remove -section:"PHP"

既存の FastCGI マッピングの構成

構成スクリプトは、この記事で前述したすべての FastCGI 構成プロパティに使用することができます。構成プロパティを設定するには、 -set スイッチを使用します。このスイッチを使用する場合は、次のパラメーターを設定する必要があります。

  • -section:<セクション名>。このパラメーターは、構成の変更を適用する対象のセクションを指定します。
  • **-<パラメーター名>:<パラメーター値>。**変更するパラメーターの名前とその値です。使用できるパラメーターの全一覧は、"Application Pool Settings" セクションにあります。
  • -norecycle。構成の変更を適用した後で、構成スクリプトによるアプリケーション プールのリサイクルを行わない場合は、このパラメーターを使用します。

この例では、FastCGI プロセス プールの構成プロパティである InstanceMaxRequests が "PHP" セクションに設定されます。

>cscript fcgiconfig.js -set -section:"PHP"  -InstanceMaxRequests:10000

関連コンテンツ

記事

詳細情報

FastCGI 拡張機能の使用方法に関するご意見やバグの報告をお寄せいただく場合は、FastCGI フォーラムをご利用ください。

IIS での FastCGI に関する既知の問題の一覧については、既知の問題 (英語) を参照してください。

IIS での各種 PHP アプリケーションの実行に関する詳細については、次を参照してください。