IIS 7以降でPHPアプリケーションをホストするようにfastcgiモジュールとPHPを構成する方法

この記事では、FastCGI要素を構成する方法と、IIS 7 Webサーバーおよび最近のバージョンでPHPのすべてのアプリケーションをホストできるようにPHPを構成する方法について学びます。.


IISプラットフォームでは、FastCGI要素により、FastCGI要素へのサポートを提供すると同時に広く利用されているアプリケーションフレームワークが有効になり、要素を信頼性の高い高性能の方法でWebサーバー上でホストできるようになりますIIS。 FastCGIは、Common Gateway Interface(CGI)への交換を提供します。これは、最初にリリースされたときからIISによってサポートされていた機能であるWebサーバーと外部アプリケーションをインターフェースするトップクラスの手段です。.

CGIプログラムは、ほとんどの場合に実行可能なファイルです。 Webサーバーは、要求を処理し、そのユーザーに返される特別な応答を生成することを定義するすべての要求に対してそれらを起動します。これらのフレームワークの多くではマルチスレッド実行がサポートされていないため、CGIは、すべてのプロセスに対して1つの要求を正確に実行することにより、IISプラットフォームで確実に実行できるようにします。クエリごとに1つのプロセスを開始およびシャットダウンするための費用がかかるため、結果は非常に悪くなります。.

多くの要求を処理するためにプロセスが何度も使用される手段を提供することにより、FastCGIはCGIに共通するパフォーマンスに関するすべての問題を解決します。再び使用できるプロセスのプールを準備し、要求のみがプロセスのみで一度に処理されるようにすることで、FastCGIは、「スレッドセーフでない」ライブラリと互換性を維持します。.

PHP Webサイトのセキュリティ分離

一般的なセキュリティを分離するためのIISの推奨事項はすべて、ホスティング用に共有できる環境でPHPをサポートするWebサイトを分離するために使用される推奨事項と一致しています。共有ホスティング環境でPHP Webサイトを分離するための推奨事項は一貫しています。したがって、以下の推奨事項:

  • 1つのWebサイトに対して1つのアプリケーションプールを利用するようにしてください。.
  • アプリケーションプールでは、専用のユーザーアカウントを使用していることを確認します。
  • アプリケーションプールのIDを使用するには、匿名のユーザーIDを構成します.
  • php.iniのファイルでFastCGI偽装を有効にしていることを確認してください。つまり、(fastcgi.impersonate = 1)

PHPプロセスのリサイクル動作

ネイティブPHPのリサイクルを開始する前に、FastCGIがphp-cgi.exeのプロセスをすでにリサイクルしていることを確認してください。 FastCGIシステムのリサイクル動作は、「instanceMaxRequests」構成属性によって規制されています。現在、この特定のプロパティは、FastCGIがリサイクル前に管理できるクエリの数を指定しています。.

また、PHPには、PHP_FCGI_MAX_REQUESTS環境で規制されているリサイクル機能の関連システムがあります。 instanceMaxRequestがPHP_FCGI_MAX_REQUESTS以下の設定になっていることを確認することで、ネイティブPHPのリサイクルロジックがアクティブにならないことが保証されます。.

FastCGIの設定を構成するには、次のいずれかを使用できます。 AppCmd コマンドラインツールまたはIISマネージャー.

A:IISマネージャーを使用してFastCGIのリサイクル設定を構成する方法

ステップ1:FastCGI設定を選択する

所有しているサーバーにIIS管理パックがインストールされていることを確認し、IISマネージャーをクリックして開きます。次に、サーバーのレベルでFastCGI設定を2回クリックします。.

手順2:[編集]オプションを選択します

構成する特定のFastCGIアプリを選択し、「アクション」というタグの付いたパネルを選択して、編集オプションを選択します.

ステップ3:「InstanceMaxRequests"

の中に FastCGIアプリケーションの編集 ダイアログボックス, 10,000をInstanceMaxRequestssetupとして統合し、EnvironmentVariablesの設定の近くにある「参照」というタグの付いたタブを選択します.

ステップ4:環境を追加する

のために EnvironmentVariablesコレクションエディター, ダイアログボックスは、 "PHP_FCGI_MAX_REQUESTS"環境変数およびその値を10000に選択.

設定を構成しない場合、システムは自動的に以下のデフォルト設定を適用するため、これは不可欠です。

instanceMaxRequestsの場合= "200"

のために PHP_FCGI_MAX_REQUESTS =「500」(主にPHP構成で使用).

コマンドラインを使用してFastCGIリサイクル設定を構成する方法

PHPとFastCGIのリサイクル動作を構成するには、 AppCmd 以下のコマンドを使用して:

consoleCopy

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

C:>%windir%system32inetsrvappcmd.exe set config -section:system.webServer / fastCgi /+"[fullPath = ‘C:{php_folder} php-cgi.exe’]。environmentVariables。[name = ‘PHP_FCGI_MAX_REQUESTS’、value = ‘10000’]"

PHPバージョン管理を有効にする

PHPでサポートされているほとんどのアプリケーションは、特定のPHPバージョンでのみ利用できる機能に依存しています。その特定のサーバーがこれらのアプリケーションタイプをホストするには、さまざまなバージョンのPHPを有効にし、同時に実行する必要があります。同じWebサーバーでの複数のPHPバージョンの実行は、IIS FastCGIのハンドラーによって完全にサポートされています.

例としては、PHP 5.2.5、5.2.1、および4.4.8を、所有しているWebサーバーですべてスレッドセーフではないものとして統合する計画がある場合です。特定の構成を可能にするために、最初にファイルのシステムと異なるフォルダーに同等のPHPバイナリを挿入する必要があります。 (例:C:\ php525 \、C:\ php521およびC:\ php448 \ nts)。その後、バージョンごとにFastCGIアプリケーション用の異なるプロセスプールを作成する必要があります。.

consoleCopy

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

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

C:>%windir%system32inetsrvappcmd set config /section:system.webServer/fastCGI /+[fullPath=’c:php448php.exe ‘]

「サイト1」、「サイト2」、「サイト3」の3つのウェブサイトがあり、サイトごとに個別のバージョンのPHPを使用する必要がある場合。次に、FastCGIアプリの対応するプロセスプールへの参照を作成するために、すべてのサイトでハンドラーマッピングの定義を作成できます。.

プロセスプールごとに注意してください。

FastCGIの場合、引数とfullPathプロパティを組み合わせることによって一意のIDが作成されます.

C:>%windir%system32inetsrvappcmd set config site1 -section:system.webServer / handlers /+"..[名前= ‘PHP448_via_FastCGI’、path = ‘*。php’、verb = ‘*’、modules = ‘FastCgiModule’、scriptProcessor = ‘c:php448php.exe’、resourceType = ‘Either’]

C:>%windir%system32inetsrvappcmd set config site2 -section:system.webServer / handlers /+"..[名前= ‘PHP521_via_FastCGI’、path = ‘*。php’、verb = ‘*’、modules = ‘FastCgiModule’、scriptProcessor = ‘c:php521php-cgi.exe’、resourceType = ‘Either’]

C:>%windir%system32inetsrvappcmd set config site3 -section:system.webServer / handlers /+"..[名前= ‘PHP525nts_via_FastCGI’、path = ‘*。php’、verb = ‘*’、modules = ‘FastCgiModule’、scriptProcessor = ‘c:php525ntsphp-cgi.exe’、resourceType = ‘Either’]

PHPのセキュリティに関する推奨事項

PHPのインストール時にセキュリティを厳しくするために、以下の設定は非常に役立ちます。これを行う最初のステップは、php.iniファイルを見つけてクリックし、開いてから、以下のように構成の設定を編集することです。.

allow_url_fopen = Off allow_url_include = Off

この設定は、ファイル処理の機能に使用されるリモートURLを無効にするために使用され、コードインジェクションの脆弱性を引き起こす可能性があります.

register_globals = Off

この設定は、register_globalsを無効にするために使用されます

open_basedir ="c:inetpub"

この設定は、ファイルシステム上のPHPプロセスが読み書きできる領域を制限するために使用されます。.

safe_mode = Off safe_mode_gid =オフ
設定はセーフモードを無効にするために使用されます.
max_execution_time = 30 max_input_time = 60
この設定は、スクリプトの実行時間を制限するために使用されます
memory_limit = 16M upload_max_filesize = 2M post_max_size = 8M max_input_nesting_levels = 64

この設定は、メモリの使用量とファイルのサイズを制限するために使用されます

display_errors = Off log_errors = On error_log ="C:あなたの選択の道"

この設定は、ログとエラーメッセージの構成に使用されます

fastcgi.logging = 0

この設定により、PHPがFastCGIのプロトコルを使用してstderrでデータを送信するときに、IIS FastCGIモジュールがすべての要求を失敗させます。また、FastCGIロギングを無効にするため、PHPがstderr経由でエラー情報を送信できず、クライアントに500の応答コードを生成できません。.

exposed_php =オフ

この設定は、PHPの存在を非表示にするために使用されます.

結論

IIS 7以降でPHPアプリケーションをホストするようにFastcgiモジュールとPHPを構成するのに役立つすべてのヒントと手順があります。この記事の手順を最後まで実行していれば、アクションを実行できるはずです。ただし、たまたま在庫がある場合は、コメントを残してコミュニティメンバーの助けを借りてください。

これらの上位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にアクセス

関連するハウツー記事

  • FastCGIを使用してIIS 7でPHPアプリケーションをホストする方法
    中間
  • Windows IIS 7にPHPアプリケーション用のMySQLをインストールして設定する方法
    中間
  • Apacheを実行しているWindows WebサーバーにMySQLをインストールする方法
    初心者
  • CentOS 7 VPSまたは専用サーバーにPHPコンポーザーをインストールする方法
    中間
  • WordPressのすべてのユーザーを一度にログアウトする方法
    中間
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me