FastCGIを使用してIIS 7でPHPアプリケーションをホストする方法

IISのFastCGIコンポーネントを使用すると、FastCGIシステムをサポートする一般的なアプリ構造をIIS Webサーバーでホストして、パフォーマンスと信頼性を高めることができます。.


FastCGIは、広く利用されているCommon Gateway Interface(CGI)に高機能オプションを提供します。これは、最初にリリースされたときからサポートされているIIS機能の1つであるWebサーバーを使用して外部アプリとインターフェースする典型的な方法です。.

CGIプログラムは、クエリが処理してユーザーに返される不安定な応答を作成するためにWebサーバーによって解放されるファイルです.

これらの構造の多くは複数のスレッドの実行をサポートしていないため、CGIでは、一度に1つの要求のみを処理することにより、IISで確実に実行できます。.

残念ながら、送信されたすべてのクエリに対してプロシージャを設定およびシャットダウンするコストが高いため、パフォーマンスが低下します.

FastCGIは、多くのクエリに対して1つのプロシージャを繰り返し再処理するメカニズムを提供することにより、CGIで一般的に見られる機能上の問題を管理します.

さらに、FastCGIは、再利用可能なプロシージャのプールを提供し、各プロシージャが毎回1つの要求のみを管理するようにすることで、非スレッドセーフライブラリのサポートを維持するのに役立ちます。.

この記事では、IIS 7以降でPHPアプリをホストするようにFastCGI要素とPHPを設定する方法について説明します。 Windows Server 2008およびWindows Vista SP1にFastCGIモジュールをインストールして使用する方法を学習します。 Windows VistaではSP1が必要です.

手順1:IIS Windows Server 2008でFastCGIサポートを有効にする

これを行うには、サーバーマネージャーを開き、[役割]に移動し、そこから[役割サービスの挿入]を探します。 [役割サービスの選択]ページで、CGIチェックボックスをオンにします。 CGIおよびFastCGIサービスが有効になります.

FastCGIを使用してIIS 7でPHPアプリケーションをホストする方法

コントロールパネルを開く -> プログラム & 特徴 -> Windowsの機能をオン/オフにします。 Windowsの機能画面で、CGIチェックボックスを選択します。 CGIおよびFastCGIサービスが有効になります.

FastCGIを使用してIIS 7でPHPアプリケーションをホストする方法

エッセンシャル:FastCGIモジュールのアップデートを設定する

IIS FastCGIモジュールの更新により、有名なPHPアプリとの特定の互換性問題が修正されます。以下のいずれかの場所からアップデートをインストールします。

  • Windows Server 2008の更新
  • Windows Server 2008 x64 Editionの更新
  • Itaniumベースシステム用のWindows Server 2008の更新
  • Windows Vista SP1用の更新
  • x64ベースシステム用のWindows Vista SP1の更新

手順2:IISの管理パックをセットアップする

これは必須ではないことに注意してください。 IIS管理パックには、FastCGIの設定をセットアップするための適切なユーザーインターフェイスがあります。管理パックのインストールは、次の場所から実行できます。

  • IIS 7以降用の管理パック– x86
  • IIS 7以降用の管理パック– x64

ステップ3:PHPをインストールして構成する

IIS FastCGIでアンスレッドセキュアPHPビルドを使用すると、FastCGIが単一のスレッド化された実装設定を保証するので、不要なすべてのスレッドセーフティテストを省略して、通常の構造よりも顕著なパフォーマンスの向上が得られるため、より優れています。.

PHPを設定するには:

ステップA: PHPのバイナリを含む最新のスレッド非対応のzipパッケージをダウンロードします。http://www.php.net/downloads.php.

ステップB: 任意のディレクトリ(C:PHPなど)にあるファイルをアンロードします。 php.ini推奨のファイル名をphp.iniに変更します.

EP C: php.iniファイルを開きます。コメントを外して、次のように設定を変更します。

  • fastcgi.impersonate = 1. IISの下にあるFastCGIは、呼び出し元の顧客のセキュリティトークンを模倣する機能をサポートします。これにより、IISはクエリが実行される安全フレームワークを記述できます.
  • cgi.fix_pathinfo = 1を配置します。 Cgi.fix_pathinfoは、CGIに*実際の* PATH_INFO / PATH_TRANSLATEDサポートを提供します。以前は、PHPのパフォーマンスはPATH_TRANSLATEDをSCRIPT_FILENAMEに設定するためのものであり、PATH_INFOを定義するためのものではありませんでした。 PATH_INFOの詳細については、cgiの仕様を確認してください。この値を1にすると、PHP CGIは仕様に準拠するようにパスを修正します.
  • cgi.force_redirect = 0を置く.
  • open_basedirを入れて、Webサイトのコンテンツが置かれているフォルダーを示します.
  • PHP拡張機能が置かれている場所を示すために、extension_dirを配置します。通常、PHP 5.2.Xの値は、extension_dir = "./ ext"
  • 必要なPHP拡張機能は、一致する行のコメントを解除して有効にする必要があります。次に例を示します。

extension = php_mssql.dll
extension = php_mysql.dll

コマンドのプロンプトを表示し、以下のコマンドを実行して、PHPのインストールが成功したことを確認します。

consoleCopy

C:PHP>php -info

PHPが適切にインストールされ、そのすべてのニーズがデバイスに存在すると、既存のPHP設定情報がこのコマンドによって出力されます.

ステップ4:PHPクエリを実行するようにIISを設定する

Internet Information ServiceがPHPアプリをホストするには、FastCGIプロトコルを使用してすべてのPHP固有のクエリをPHPアプリケーション構造に転送するようにIISに通知するハンドラーマッピングを含める必要があります。.

IISマネージャーを使用してPHPクエリを処理するようにIISを設定する

ステップA: IISマネージャーを起動します。サーバーレベルでハンドラーマッピングをダブルクリックします。.

FastCGIを使用してIIS 7でPHPアプリケーションをホストする方法

ステップB: アクションウィンドウで、モジュールマッピングの追加をタップします。新しいウィンドウで、次のように構成設定を指定します。

  • リクエストパス:* .php
  • モジュール:FastCgiModule
  • 実行可能ファイル: "C:[PHPインストールへのパス] php-cgi.exe"
  • 名前:FastCGIを介したPHP
  • ステップC: OKをタップ.

FastCGIを使用してIIS 7でPHPアプリケーションをホストする方法

ステップD: 実行可能ファイル用のFastCGIアプリを作成するかどうかを示す[Add Module Mapping]検証ウィンドウで、[Yes]をクリックします.

FastCGIを使用してIIS 7でPHPアプリケーションをホストする方法

ステップE: phpinfo.phpファイルを生成して、ハンドラーマッピングが正しく機能していることを確認します

C:inetpubwwwrootフォルダー内の次のコード:

XMLCopy

<?php phpinfo(); ?>

ステップF: ブラウザを起動して、http://localhost/phpinfo.phpにアクセスします. すべてが適切に設定されている限り、通常のPHPページに情報が表示されます。.

FastCGIを使用してIIS 7でPHPアプリケーションをホストする方法

メモを取る

FastCgiModuleが[モジュール]リストに表示されない場合は、モジュールが登録されていないか、有効になっていないかのどちらかです。 FastCGIモジュールが登録/有効化されているかどうかをテストするには、%windir%windowssystem32configapplicationHost.configにあるIISセットアップファイルを開き、以下の行が セクション:

XMLCopy

また、そのファイルで、FastCGIモジュールがセクションに含まれていることを確認します。
XMLCopy

ステップ5:コマンドラインを使用してPHPクエリを操作するようにIISを設定する

次に、コマンドラインインストルメントA ppCmdを使用して上記の手順を実行できます。.

ステップA: 以下のコマンドを入力して、FastCGIアプリケーションプロシージャプールを作成します。

consoleCopy

C:>%windir%system32inetsrvappcmd set config /section:system.webServer/fastCGI /+[fullPath=’c:{php_folder}php-cgi.exe ‘]

ステップB: 以下のコマンドを入力して、ハンドラーマッピングを作成します。

consoleCopy

C:>%windir%system32inetsrvappcmd set config /section:system.webServer/handlers /+[name=’PHP_via_FastCGI’,path=’*.php’,verb=’*’,modules=’FastCgiModule’,scriptProcessor=’c:{php_folder } php-cgi.exe ‘、resourceType =’ Unspecified ‘]

結論

FastCGIは、デバイスに無数の要求に対して単一のプロセスを繰り返し再利用する機能を提供することにより、CGIに固有のパフォーマンスの問題に対処します。さらに、FastCGIは、再利用可能なプロセスのプールを提供し、すべてのプロセスが一度に1つの要求のみを処理するようにすることで、スレッド保護されていないライブラリとの互換性を維持します。 PHPバージョン4.Xを使用する場合、php-cgi.exeではなくphp.exeを使用できます。.

これらの上位3つの最高のWebホスティングサービスをチェックしてください

FastComet

開始価格:
$ 2.95


信頼性
9.7


価格
9.5


使いやすい
9.7


サポート
9.7


特徴
9.6

レビューを読む

FastCometにアクセス

A2ホスティング

開始価格:
$ 3.92


信頼性
9.3


価格
9.0


使いやすい
9.3


サポート
9.3


特徴
9.3

レビューを読む

A2 Hostingにアクセス

ChemiCloud

開始価格:
$ 2.76


信頼性
10


価格
9.9


使いやすい
9.9


サポート
10


特徴
9.9

レビューを読む

ChemiCloudにアクセス

関連するハウツー記事

  • IIS 7以降でPHPアプリケーションをホストするようにfastcgiモジュールとPHPを構成する方法
    中間
  • アプリケーションプールのワーカープロセスのpingを有効にする方法(IIS 7)
    中間
  • アプリケーションプールIIS 7を起動または停止する方法
    中間
  • Microsoft WebプラットフォームのインフラストラクチャとPHPアプリケーションを保護する方法
    中間
  • IISユーザー認証を構成する方法
    中間
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me