WindowsおよびIIS7上のPHP

PHPには多くの優れたアプリケーションが記述されています。 さえない

非常に多く、それらのいくつかは非常に優れているので、これらを使用しないのはなぜですか

Windowsアプリケーション? 特に、内部ポータルがWindowsで実行されている場合、および

外部の会社のWebサイトを回転させるUnixマシンで-その後

インフラストラクチャとWindowsのホストを節約できます

サーバーは外部サイトでもあります。 または、標準化する場合

Windowsのインフラストラクチャおよびホストサイト

開発者とユーザーが作業するためのプラットフォーム

Windowsプラットフォーム。

ウェブサイトwww.iis.netで

見つけることができます

リスト

人気のあるPHPアプリケーション

IISでのインストール手順。 それらを実行するには

IISでの変更は不要

PHPコード。



FastCGIモジュールで使用するPHPをインストールおよび構成します。



開始するには、PHPを正常に使用するには

PHPがあればWindowsはいいだろう

インストールします。

ステップ1. PHPをダウンロードする

PHP.netサイトで、 ダウンロードする必要があります

PHP for Windowsの最新バージョン 。 FastCGIでの使用を推奨

モジュール自体は、スレッドセーフ制御なしでPHPバージョンをインストールします。

FastCGIは、単一スレッドでの実行とサポートを保証します

PHP自体のスレッドセーフティコントロールは追加のチェックを導入し、

ロックにより、パフォーマンスが大幅に低下します。 だから

非スレッドセーフWin32バイナリを選択します(執筆時点ではバージョン5.2.6が該当します)

この投稿)

非スレッドセーフは、特に

IISでFastCGIを使用し(最初のリリースはバージョン5.2.1でした)、

他の環境は推奨されません。 ところで、バージョン5.2.2からZendは深刻です

WindowsでのPHPパフォーマンスの最適化に取り組んでいますが、失敗することはありません

してください。 バージョン5.2.1と5.2.2を比較すると、処理速度の違い

クエリは、簡単な負荷テストで簡単に確認できます。

ステップ2. PHPのインストール

インストールは非常に簡単です。

実行可能ファイルは、このアーカイブを展開するだけです。たとえば、

C:\ Web \ PHPディレクトリ。

基本構成として、推奨設定を使用します。

同じディレクトリにあるphp.iniのphp.ini-recommendedファイルのコピーを作成して開きます

それを編集するには、その後、上記のファイルを調べて次のコメントを外します

セキュリティとほとんどのPHPとの互換性を確保する文字列

アプリケーション:



ステップ3. PHPの機能を確認する

IISを構成するまで、インタープリターが機能しているかどうかを確認します

たとえば、コマンドc:\ web \ php \ php.exe -info> c:\ test.txtを実行するだけで簡単にできます。

IIS7にFastCGIモジュールをインストールして構成します。



IIS7を使用している場合、操作の名前について何かが教えてくれます

システム-Windows Vista? Windows Server 2008には当てはまりません! またはあなたはハッカーであり、

IIS7を別の場所に配置しますが、これは非標準のソリューションであり、

サポート;)。

手順1. FastCGIをインストールする

すぐにお願いします-Windows Server 2008およびWindows Vistaに付属するIIS7

Service Pack 1 FastCGIモジュールは既に含まれています。 接続する必要があるだけです

設定。 これを行うには、Vistaで[コントロールパネル]-> [プログラム]を開き、

「Windowsの機能をオンまたはオフにする」:

ControlPanel-プログラム



その後、IISに機能をインストールする必要があります:インターネットインフォメーションサービス

-> World Wide Webサービス->アプリケーション開発機能-> CGI。 同時に

CGIとFastCGIの両方のサポートがインストールされます。

IIS_CGI_Feature



Windows Server 2008では、プロセスは似ています:サーバーマネージャー->ロール->追加

役割サービス-> Webサーバー->アプリケーション開発-> CGI。

実際、FastCGIモジュールを有効にするために必要なことはすべてあります。

ステップ2. IIS7の構成

1. IISマネージャーを開き、構成するノード(サーバー)を選択します

PHPサポート。 そして、ハンドラーマッピングを選択します。

ハンドラーマッピング

HandlerMappingsOpened



2. [ハンドラーマッピング]ページで、[モジュールマッピングの追加]リンクを選択し、

ウィンドウに次の値を入力します。

要求パス:* .php(拡張子が.phpのすべてのファイルを処理)

モジュール:FastCgiModule(FastCGIモジュール)

実行可能ファイル:C:\ Web \ PHP \ php-cgi.exe(PHPへのパス)

名前:PHP(便宜上の名前)

PHPハンドラー



この設定を追加すると、登録について尋ねるウィンドウが表示されます

このハンドラー用のFastCGIアプリケーション。 確認します。

上記のアクションにより、PhpSitesディレクトリに次のものが作成されました。

web.configファイル:



<? xml version = "1.0" encoding = "UTF-8" >

< 設定 >

< system.webServer >

< ハンドラー >

< add name = "PHP" path = "*。php" verb = "*"

modules = "FastCgiModule" scriptProcessor = " C:\ Web \ PHP \ php-cgi.exe "

resourceType = "指定なし" />

</ ハンドラー >

</ system.webServer >

</ 設定 >

*このソースコードは、 ソースコードハイライターで強調表示されました。




これで、PHPの正常性を確認できます。

ステップ3.設定が正しいことを確認します。

PHPを構成したノードディレクトリにファイルを作成します

index.php:

  <?<phpinfo(); <br />?> 


そして、HTTPリクエストを介してこのファイルにアクセスします。 その結果、すべてが順調で、

カルマが破損していない場合、リクエストは正しく処理されます。

phpinfo



PHPの設定に関する推奨事項

Iis7



もちろん、PHPを使用する場合

IIS7の落とし穴が発生する可能性があります

期待される結果を達成するために戦う(素晴らしい仕事

Windows上のPHPアプリケーション)。

頻繁に遭遇する石を破壊するためのハンマーを以下に示します。

PHPプロセスの再起動頻度





PHPを使用する場合

FastCGIを使用するIIS7

モジュール、FastCGIモジュール自体が処理します

プロセスおよびリソース管理、再起動メカニズムを確認する必要があります

PHPでのプロセス(リサイクル)

FastCGIは干渉しません。 これは次の場合に簡単です

常に再起動するようにFastCGIを構成します

PHPよりも早く処理します。

FastCGI設定に設定があります

instanceMaxRequests。処理後のリクエスト数を決定します。

プロセスが再起動します。 PHPでは、同様のパラメーター

変数PHP_FCGI_MAX_REQUESTSの値によって設定されます。 明らかに与える

プロセスを操作するFastCGIの能力、十分な

instanceMaxRequests <= PHP_FCGI_MAX_REQUESTを設定します。

これは、ファイルを編集して行うと便利です。

applicationHost.config(ディレクトリC:\ windows \ system32 \ inetsrv \ config \に隠れています)。

次の情報が構成に含まれている必要があります。

< fastCgi >

< application fullPath = " C:\ inetpub \ php \ php-cgi.exe "

maxInstances = "4" instanceMaxRequests = "10000" >

< 環境変数 >

< 環境 変数 = "PHP_FCGI_MAX_REQUESTS" = "10000" >

</ 環境変数 >

</ アプリケーション >

</ fastCgi >

*このソースコードは、 ソースコードハイライターで強調表示されました。

PHPの複数のバージョンを使用する



さまざまなバージョンのPHPを使用できるため、

サーバーでホストされているアプリケーションは、有効にするとよいでしょう

サイトごとに異なるバージョンを使用します。

applicationHost.config構成ファイル内

PHPの異なるバージョンのセクションを定義するだけです。

< fastCgi >

< application fullPath = "C:\ inetpub \ php \ php-cgi.exe" >

...

</ アプリケーション >

< application fullPath = "C:\ inetpub \ php4 \ php4.exe" >

...

</ アプリケーション >

< application fullPath = "C:\ inetpub \ php41 \ php41.exe" >

...

</ アプリケーション >

</ fastCgi >

*このソースコードは、 ソースコードハイライターで強調表示されました。
そして、すでに各サイトに対して、いずれかを使用するモジュールが構成されています

バージョン(上記のインターフェースを使用できます。または、

テキストの構成を編集します):

< ハンドラー >

< add name = "PHP4" path = "* 。php " verb = "*" modules = "FastCgiModule"

scriptProcessor = " C:\ inetpub \ php \ php41.exe "

resourceType = "指定なし" />

</ ハンドラー >

*このソースコードは、 ソースコードハイライターで強調表示されました。

さまざまなPHPプリセットを使用する



PHPを別の方法で構成する場合

さまざまなサイト、それからすべてこれは構成設定を通して記述できます

applicationHost.config。

< fastCgi >



< application fullPath = " C:\ inetpub \ php \ php-cgi.exe "



arguments = "-d my.website = wordpress" >



< 環境変数 >



< 環境 変数 = "PHPRC" = "C:\ inetpub \ wordpress" />



</ 環境変数 >



</ アプリケーション >



< application fullPath = " C:\ inetpub \ php \ php-cgi.exe "



arguments = "-d my.website = phpsite" >



< 環境変数 >



< 環境 変数 = "PHPRC" = "C:\ inetpub \ phpsite" />



</ 環境変数 >



</ アプリケーション >



</ fastCgi >

*このソースコードは、 ソースコードハイライターで強調表示されました。


その後、設定は、対応するサイトにリンクします

web.config:

< system.webServer >



< ハンドラー accessPolicy = "読み取り、スクリプト" >



< add name = "PHP" path = "* 。php" verb = "*" modules = "FastCgiModule"



scriptProcessor = " C:\ inetpub \ php \ php-cgi.exe | -d my.website = wordpress "



resourceType = "指定なし" requireAccess = "スクリプト" />



</ ハンドラー >



</ system.webServer >

*このソースコードは、 ソースコードハイライターで強調表示されました。


指定された構成に従って、php.ini

各サイトのディレクトリに配置する必要があります。

設定を編集するとき、パスへの一致を厳密に観察する価値があります

適切なバージョンのPHPおよび

applicationHost.configおよびweb.configで

パスが混乱している場合は、予期しない結果を避けてください。

一見、設定の編集は複雑に思えるかもしれませんが、

不便なプロセスですが、すぐに設定に慣れるとすぐに

XMLとメソッドの配布

Ctrl + C、Ctrl + V、他の人の存在に驚くでしょう

設定方法:)

PHPセキュリティ設定



php.iniにはさまざまな設定があり、その多くは

PHPの使用のセキュリティに影響します。 カスタマイズする

すべてが適切であり、価値のある原因です。

allow_url_fopen = Offに設定

; ファイル操作にURLを使用する

allow_url_include = Offを設定

register_globals =オフ

; グローバル変数の登録を解除します

open_basedir = "c:\ inetpub \";

PHPが実行されるディレクトリの制限



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 =オフ

; エラーメッセージを無効にする

log_errors =オン

error_log = "C:\ error.log"

Exposure_php =オフ

; PHPの存在を隠す



おわりに



Windows上のPHPは

面白くて便利なのは、主にそれが機能することです。 チーム

IISはPHPの作成に取り組んでいます

窓よりも悪くない

Unix / Linux(もちろん、もっとうまくやってみてください)。

これはMicrosoftにとって新しいトピックなので、次のことができます。

いくつかの間違いを犯すと、私たちは何かに気づかないか理解できないので、

開発者と管理者からコメントを受け取ることは非常に重要です。

あなたが今見ているあなたの願いや問題をコメントに書いてください

Windows上のPHP、そして

問題を解決し、願いを実行してください。



All Articles