ホームページ  >  記事  >  バックエンド開発  >  IIS_PHP チュートリアルで PHP を構成するための ISAPI と FastCGI の比較

IIS_PHP チュートリアルで PHP を構成するための ISAPI と FastCGI の比較

WBOY
WBOYオリジナル
2016-07-15 13:26:08765ブラウズ

Windows IIS 6.0 で PHP を設定するには、通常、CGI、ISAPI、および FastCGI の 3 つの設定方法があります。次に、これら 3 つの設定方法の違いとパフォーマンスについて説明します。

1. CGI (Common Gateway Interface) は通常、EXE ファイルなどの実行可能プログラムであり、WEB サーバーはそれぞれ異なるプロセスを占有し、通常、CGI プログラムは 1 つのユーザー要求のみを処理できます。このように、ユーザー リクエストの数が非常に多い場合、メモリや CPU 時間などのシステム リソースが大量に占有され、パフォーマンスが低下します。

2. ISAPI (Internet Server Application Program Interface) は、Microsoft が提供する WEB サービス用の API インターフェイスのセットで、CGI が提供するすべての機能を実現し、フィルター アプリケーションの提供などを拡張できます。 ISAPI アプリケーションは、ほとんどの場合、ユーザーの要求後に実行できる DLL 動的ライブラリの形式で使用されます。これらは、ユーザーの要求を処理した後すぐには消えませんが、メモリ内に常駐し続け、他のユーザーの入力を待ちます。処理される。また、ISAPI の DLL アプリケーションと WEB サーバーは同一プロセス内にあるため、CGI に比べて効率が大幅に高くなります。

Windows Server 2003 の IIS6 で ISAPI PHP を設定します。設定方法は、IIS の「WEB サービス拡張機能」に新しい WEB サービス拡張機能を追加することです。プログラムのサフィックスは PHP で、ISAPI プログラムは php5isapi.dll です。次に、「環境変数」-「システム環境変数」に変数名 PHPRC を追加します。値は php.ini へのパスです。インターネット インフォメーション サービス マネージャーで、Web サイトまたはアプリケーションのルート ディレクトリを選択し、ディレクトリのプロパティ ページ (右クリックして [プロパティ] を選択) し、[ホーム ディレクトリ] を選択します。 「設定」ボタンをクリックし、「マッピング」タブページを選択します。 [追加...] をクリックし、[実行可能ファイル] を c:phpphp5isapi.dll に設定し、拡張子を .php に設定し、[ファイルが存在するかどうかを確認する] を選択して、[OK] をクリックして設定を保存します。サーバーを再起動して、PHP 構成を完了します。

3. FastCGI は、スケーラブルなアーキテクチャを備えた CGI のオープンな拡張機能であり、その主な動作は CGI インタープリター プロセスをメモリ内に保持することで、より高いパフォーマンスを実現します。従来の CGI インタープリターの繰り返しロードが CGI パフォーマンス低下の主な原因です。CGI インタープリターがメモリ内に残り、FastCGI プロセス マネージャーのスケジューリングを受け入れる場合、良好なパフォーマンス、スケーラビリティなどが提供されます。

FastCGI は IIS7 に統合され、IIS6 にも対応しています。IIS6 でのインストール方法については、Microsoft の公式ドキュメントを簡単に翻訳します。

まずここをクリックして IIS 用の 32 ビット FastCGI 拡張機能をダウンロードし、インストールされたファイルを system32inetsrv ディレクトリに配置する必要があります。

次に、system32inetsrv ディレクトリを開き、次のステートメントを実行します。ここで、c:php は PHP ディレクトリであり、他の値に変更できます。

<ol class="dp-c"><li class="alt"><span><span>cscript fcgiconfig.js -add -section:</span><span class="string"><font color="#0000ff">"PHP"</font></span><span> -extension:php -path:</span><span class="string"><font color="#0000ff">"c:phpphp-cgi.exe"</font></span><span> </span></span></li></ol>

インターネット インフォメーション サービス マネージャーで、Web サイトまたはアプリケーションのルート ディレクトリを選択し、ディレクトリのプロパティ ページを開き (右クリックして [プロパティ] を選択)、[ホーム ディレクトリ] を選択します。 「設定」ボタンをクリックし、「マッピング」タブページを選択します。 [追加...] をクリックし、[実行可能ファイル] を c:windowssystem32inetsrvfcgiext.dll に設定し、拡張子を .php に設定し、[ファイルが存在するかどうかを確認する] を選択して、[OK] をクリックして設定を保存します。

php.ini ファイルを変更し、次のステートメントを追加します。

<ol class="dp-c">
<li class="alt"><span><span>fastcgi.impersonate = 1  </span></span></li>
<li class=""><span>cgi.fix_pathinfo = 1  </span></li>
<li class="alt"><span>cgi.force_redirect = 0 </span></li>
</ol>

次に、system32inetsrv ディレクトリを開いて、次のステートメントを実行します。

<ol class="dp-c">
<li class="alt"><span><span>cscript fcgiconfig.js -set -section:</span><span class="string"><font color="#0000ff">"PHP"</font></span><span> -InstanceMaxRequests:10000  </span></span></li>
<li class="">
<span>cscript fcgiconfig.js -set -section:</span><span class="string"><font color="#0000ff">"PHP"</font></span><span> -EnvironmentVars:PHP_FCGI_MAX_REQUESTS:10000 </span>
</li>
</ol>

最後に、IIS_WPG グループが読み取りおよびアクセスできるように、c:php ディレクトリのセキュリティを構成します。このディレクトリの権限を実行します。

現時点では、FastCGI ベースの PHP が IIS6 上で正常に構成されています。

しかし、私自身のテストによると、FastCGI のパフォーマンスは ISAPI のパフォーマンスよりもそれほど高くないようです。Windows Server 2008 の IIS7 の方が優れているのではないかと思います。ここでは、FastCGI が組み込まれた IIS7 に基づいて PHP をインストールするために Microsoft が提供する方法を示します。


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/446616.html技術記事 Windows IIS 6.0 で PHP を構成するには、通常、CGI、ISAPI、および FastCGI の 3 つの構成方法があります。これら 3 つの構成方法の違いについて説明します...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。