このセクションでは、IIS (Microsoft Internet Information Server) で PHP を使用する場合について説明します。 PWS/IIS 3, PWS 4 以降 および IIS 4 以降 のバージョンを扱います。
CGI 版 PHP を使用の場合: cgi.force_redirectに関するFAQ に重要な情報がありますのでお読みください。このディレクティブが 0 にセットされている必要があります。
警告 |
CGIの設定を使用する際、サーバーには様々な攻撃を受ける可能性があります。 これらの攻撃からサーバーを守る方法については、 CGIセキュリティの節を 参照してください。 |
PWS/IIS 3 サーバを設定するには、配布ファイルに含まれる REG ファイル (SAPI フォルダの pws-php4cgi.reg が PHP 4 用、 親フォルダの pws-php5cgi.reg が PHP 5 用) を使用することを推奨します。 このファイルを編集し、拡張子および PHP インストールディレクトリを自分用の設定に 調整することが可能です。さもなくば、以下の手順により、手動でこの設定を行うことも可能です。
警告 |
以下の手順では Windows レジストリに対して直接変更を加えます。 エラーが一つでも生じた場合、システムが不安定になる可能性があります。 レジストリのバックアップをとることをを強く推奨します。 PHP 開発チームは、レジストリが損傷した場合の責任を負いません。 |
Regedit を起動します。
HKEY_LOCAL_MACHINE /System /CurrentControlSet /Services /W3Svc /Parameters /ScriptMap へ移動します。
「編集」メニューから、新規 -> 文字列値 を選択します。
PHP スクリプトに使用する拡張子名とします。例、.php
この新しく作成した文字列値をダブルクリックし、入力欄に php.exe までのパスを入力します。 例、PHP 4 の場合 C:\php\php.exe、 PHP 5 の場合 C:\php\php-cgi.exe
PHP スクリプトに関連付けたいすべての拡張子に対して、上記の手順を繰り返してください。
以下の手順は、WEB サーバのインストールに影響を与えるものではなく、 PHP スクリプトをコマンドラインやダブルクリックで実行させたい場合にのみ行ってください。 ダブルクリックした際にテキストエディタに読み込まれるままとしたいのなら、 以下の手順はスキップしてください。
HKEY_CLASSES_ROOT へ移動します。
編集メニューから、新規 -> キー を選択します。
キーを先に入力した拡張子と同じ名前にします。例、.php
作成した新しいキーをハイライト表示し、右の欄で 「(既定)」 をダブルクリックし、 phpfile と入力します。
先に登録したすべての拡張子に対して繰り返します。
HKEY_CLASSES_ROOT で、再度 新規->キー とし、phpfile という名前にします。
phpfile をハイライト表示し、右の欄で 「(既定)」 をダブルクリックして PHP Script と入力します。
phpfile を右クリックし、新規->キー を選択し、新しくできたキーを Shell という名前にします。
Shell を右クリックし、新規->キー を選択し、新しくできたキーを open という名前にします。
open を右クリックし、新規->キー を選択し、新しくできたキーを command という名前にします。
新しくできた command をハイライト表示し、 右の欄で 「(既定)」 をダブルクリックして php.exe への パスを入力します。例、c:\php\php.exe -q %1 (%1 を忘れずに入力すること)
Exit Regedit を終了します。
PWS を使用の場合、レジストリを再ロードするために リブートします。
ここまでの作業で、PWSおよび IIS 3用のシステムインストールは完了しました。 IIS 3 用の良くできた 設定ツール が Steven Genusa により 配布されています。
PWS 4 以降が動作している Windows で PHP を使用するには 2 つの方法が あります。CGI バイナリを使う方法と、ISAPI モジュール DLL を使う方法です。
CGI バイナリを使う場合、次のようにしてください。
配布フィル内の pws-php4cgi.reg / pws-php5cgi.reg ファイル (PHP4 の場合 SAPI フォルダを PHP 5 の場合親フォルダを参照)を編集し、php.exe / php-cgi.exe の設置場所を反映させます。 バックスラッシュはエスケープする必要があります。例、 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters\Script Map] ".php"="C:\\php\\php.exe" (PHP 5 の場合は C:\\php\\php-cgi.exe とする)。 編集を終えたらダブルクリックして、レジストリファイルをシステムに反映させます。
PWS マネージャで、PHP を実行させたいフォルダで右クリックし、 プロパティを選択します。「実行」チェックボックスをチェックし、確認を押します。
ISAPI モジュールを使う場合、次のようにしてください。
配布フィル内の pws-php4isapi.reg / pws-php5isapi.reg ファイル (PHP4 の場合 SAPI フォルダを PHP 5 の場合親フォルダを参照)を編集し、php4isapi.dll / php5isapi.dll の設置場所を反映させます。 バックスラッシュはエスケープする必要があります。例、 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters\Script Map] ".php"="C:\\php\\sapi\\php4isapi.dll" (PHP 5 の場合は C:\\php\\php5isapi.dll とする)。 編集を終えたらダブルクリックして、レジストリファイルをシステムに反映させます。
PWS マネージャで、PHP を実行させたいフォルダで右クリックし、 プロパティを選択します。「実行」チェックボックスをチェックし、確認を押します。
IIS 4以降が動作している NT/2000/XP サーバで PHP を使用するには、 以下の指示にしたがってください。CGI バイナリ (PHP 4 の場合 php.exe、 PHP 5 の場合 php-cgi.exe) と ISAPI モジュールの 2 種類の方法があります。
どちらの場合も、マイクロソフトマネージメントコンソール (NT 4.0 オプションパックもしくは Windows 2000/XP で、 コントロールパネル => 管理ツール にある 「インターネット インフォメーション サービス」) を起動する必要があります。 続いて、Web サーバノード (「Web サイト」と表示されていることが多い) 上で右クリックし、プロパティを選択します。
CGI バイナリを使う場合、次のようにしてください。
「ホームディレクトリ」(もしくは「仮想ディレクトリ」「ディレクトリ」)タブで 「構成」 ボタンをクリックし、「アプリケーションの構成」ウインドウに移ります。
「追加」 をクリックし、「実行ファイル」欄に次のように入力します。 PHP 4 の場合 C:\php\php.exe、 PHP 5 の場合 C:\php\php-cgi.exe (PHP の zip アーカイブを c:\php\ で解凍したと仮定しています。)
「拡張子」欄に、PHP スクリプトと関連づける拡張子名を入力します。 「動詞」は空白のままにし、「スクリプトエンジン」チェックボックスを チェックします。「ファイルの存在を確認する」をチェックすると、 少しパフォーマンス は落ちますが、IIS (もしくは PWS) は PHP を起動する前に そのスクリプトが存在し認証上の問題が無いかがチェックされます。 PHP は CGI エラー時に空白の画面しか出力しませんが、こうすることで、 より解りやすい 404 エラーメッセージを出力させるようにすることができます。
上記の手順を PHP スクリプトに関連づけたい拡張子ごとに繰り返してください。 .php と .phtml が一般的な拡張子です。古いアプリケーションでは、.php3 が必要な場合があります。
適切にセキュリティを設定してください。NT サーバにおいて NTFS ファイルシステムを使用している場合、 I_USR_ に対する実行権限を php.exe / php-cgi.exe があるディレクトリに追加してください。
ISAPI モジュールを使う場合、次のようにしてください。
(PHP を使用して HTTP 認証を実行しない場合は、この手順を飛ばしてください。) 「ISAPI フィルタ」タブで新規フィルタを追加します。「フィルタ名」として PHP を使用し、「実行ファイル」には php4isapi.dll / php5isapi.dll へのパスを入力してください。
「ホームディレクトリ」タブで「構成」ボタンをクリックし、 「アプリケーションの構成」へ新規エントリを追加します。 「実行ファイル」として php4isapi.dll / php5isapi.dll へのパスを入力してください。 「拡張子」には .php を指定し、「動詞」は空白のまま、「スクリプトエンジン」 チェックボックスをチェックしてください。
IIS を停止させます。(NET STOP iisadmin)
IIS を再度起動します。(NET START w3svc)
CPU 使用率が 100% となる場合は、IIS の設定「ISAPI アプリケーションをキャッシュ」をオフにしてください。