web-dev-qa-db-ja.com

PHP IISへのインストール:ISAPIまたはCGI?

Windows Server 2k3でIIS6を実行していて、現在PHPがISAPIモジュールとしてインストールされています。環境をPHP 5.3にアップグレードしようとしています。 0、そしてこれは私がISAPIモジュールを使い続けるべきか、それともCGIの方が適している理由があるのか​​疑問に思いました。

私たちの組織には1つのWebサーバーがあり、共有ホスティングに関連するセキュリティについて心配する必要はありません。私たちはいくつかのウェブサイトを持っていますが、それらはすべて私たちのものです。

他の方法よりも1つの方法を使用する利点はありますか?もう1つ安全ですか?それは単に好みの問題ですか?

編集:PHP 5.3.0はISAPIのサポートを終了したため、FastCGI経由でインストールする必要があります。 PHP移行ガイド

ISAPIモジュールのサポートは廃止されました。代わりに、改善されたFastCGI SAPIモジュールを使用してください。

7
Jacob Hume

Non-Thread-SafePHP CGI binary for Windowsは、次のように最大の安定性、互換性、パフォーマンスを提供します: :

  1. PHPはもともとマルチプロセス環境向けに設計および最適化されました
  2. 拡張機能のほとんどは、それを念頭に置いて作成されました
  3. マルチスレッド環境で見られる「待機」はありません

ただし、IISなどのマルチスレッド環境でCGIバイナリを使用すると、パフォーマンスと安定性が損なわれます。したがって、ほとんどの人は、比較的新しいFastCGI拡張機能の使用を開始しました。これは、ダウンロードとしてIIS 5.1/IIS 6.0で利用できます。 IIS7にバンドルされています。

このガイド は、MicrosoftのFastCGI拡張機能を使用したCGIのインストールと構成の方法を説明していますPHP CGI.

2番目のオプションは、PHP ISAPIを使用することですが、必ず(i)スレッドセーフビルドを使用してください(ii)安定したテスト済みの拡張機能を使用してください-PHP = ISAPIは他の方法でクラッシュしてダウンする可能性がありますIISも同様です。PHPのトレッドセーフティは常に作動するハンドブレーキのようなものです;神話だと言う人もいます。

更新:PHP ISAPIはもう出荷されていないため、ISAPIとCGIの比較に関する質問はもう質問ではありません。FastCGIをお勧めします。

  1. FastCGIサポートはIISの最新バージョンに組み込まれているので、有効にするだけです。
  2. PHPインストーラは、FastCGIでPHPをインストールするオプションを提示します。
  3. Zipインストールを実行したい人のために、「IIS用PHPマネージャー」を使用して、IISでPHPインストールを構成できます。
6
Salman A

私は個人的に、ビジーでないWebサイト(たとえば、平均0〜25ユーザー)に対してISAPIが正常に機能することを見つけました。ISAPIよりもCGIを使用するメリットはほとんどありません。

ただし、ビジーなWebサイトがある場合、または少し作業を加えることを気にしない場合は、Win2003 IIS6で取得できるようにFastCGIを確認することをお勧めします。

http://www.iis.net/extensions/FastCGI

6
William Hilsum

CAPIは、ISAPIモデルと比較してIISでのパフォーマンスが非常に低いです(CGIが機能する方法である新しいプロセスを作成することは、Windows NT派生のオペレーティングシステムでは非常に「高価」であるため))。 of IIS ISAPIの「問題」の多く(メモリリーク、アプリケーションの「リサイクル」が必要など)は「修正済み」であり、ISAPIベースのアプリケーションは一般に非常にうまく機能し、管理が容易です。あなたが見つけた理由:ISGIベースのアプリケーションよりも「CGIベースのアプリケーションの方が優れている」は、おそらくIIS 4.0またはIIS 5.0-時代考え方。

5
Evan Anderson