PHPをWindows Server の IIS(Internet Information Services)環境にインストールする

PHPをインストールして、Windows ServerのIISでPHPが動作するよう設定します。

事前準備

PHPをインストールするにあたり、Windows Serverで以下の準備をします。

IISのインストール

サーバーマネージャーの[役割と機能の追加ウィザード]からインターネットインフォメーションサービス (IIS)をインストールします。

FastCGIのインストール

IISをデフォルトでインストールした場合はFastCGIモジュールがインストールされませんので、CGIモジュールをインストールします。 手順については「Windows Server に FastCGI モジュールをインストールする」の記事を参照してください。

インストール手順 : PHPのダウンロードと配置

PHP7の場合 (2020年)

PHPのWebサイト(https://www.php.net)にアクセスします。下図のページが表示されます。
ページ上部の[DOWNLOADS]リンクをクリックします。


ダウンロードページが表示されます。今回はWindows版をダウンロードしますので、[Windows downloads]のリンクをクリックします。


Windows版のダウンロードページが表示されます。必要なバージョンのPHPをダウンロードします。 今回はバージョン 7.4.10 の Non Thread Safe 版をダウンロードします。 Thread Safe / Non Thread Safe 版のどちらをダウンロードするかについてはこちらの記事を参照して下さい。


PHPのZipファイルをダウンロードできました。


Zipファイルを展開します。


展開したファイルを配置します。今回は C:\PHP ディレクトリに配置しました。


php.exe または php-cgi.exe を実行します。実行時にエラーが発生する場合(下図参照)は必要なランタイムをインストールします。
下図の例では、vcruntime140.dll が見つからない旨のエラーが発生しています。「Visual Studio 2015、2017、および 2019 用 Microsoft Visual C++ 再頒布可能パッケージ」 をインストールします。インストール手順はこちらの記事を参照してください。

インストール手順 : ハンドラーマッピングの登録

[インターネット インフォメーション サービス (IIS) マネージャー]を起動します。下図のウィンドウが表示されます。


起動後左側のツリービューでサーバーのノードを選択します。右側のエリアから[ハンドラーマッピング]を選択します。


[ハンドラ-マッピング]画面が表示されます。右側の[操作]エリアから[モジュールマップの追加]を選択します。~

[モジュール マップの追加]ダイアログが表示されます。


[モジュール]のコンボボックスを開き"FastCgiModule"を選択します。




[実行可能ファイル]テキストボックスの右側の[...]ボタンをクリックします。ファイル選択ダイアログが開かれますので、先ほど設置したPHPの"C:\PHP" ディレクトリ内の php-cgi.exe を選択します。


他の項目も埋めます。[要求パス]は今回はPHPのみのため "*.php" とします。ダイアログ下部の「要求の制限」ボタンをクリックします。


[要求の制限]ダイアログボックスが表示されます。こちらは基本のままの設定でOKです。



設定が完了すると、[IIS マネージャー]のハンドラマッピングの項目に、先に設定した項目が追加されていることが確認できます。

動作確認

以下のテストファイルを作成します。

コード (test.php)

<?php
phpinfo();
?>

作成したPHPファイルにアクセスします。正しく動作すると下図の画面が表示されます。

正しく動作しない場合

エラー500などが発生し正しく動作しない場合は「IISでPHPファイルを開くと 500エラーが表示されスクリプトが実行できない」を参照してください。

php.ini ファイルの編集

PHPを配置したディレクトリを確認すると
  • php.ini-development
  • php.ini-production
ファイルが配置されています。


今回は、"php.ini-production"ファイルを"php.ini"にリネームします。必要に応じてphp.iniファイル内を編集します。今回はデフォルトのまま利用します。






インストール手順 (以前の版)

PHP7の場合

PHP7のzipファイルをダウンロードします。今回はバージョン 7.1.7 の non-Thread Safe 版をダウンロードしました。


zipファイルのプロパティを開き[ブロックの解除]チェックボックスにチェックをし、ブロックを解除します。


zipファイルを展開します。


展開したファイルを "C:\PHP" ディレクトリに配置します。"C:\PHP" ディレクトリ以外(例えば、"C:\Program Files\PHP")に配置しても問題ありませんが、"C:\PHP"に配置するケースが多いようです。

PHP5の場合 (PHP 5.6)

PHP5のzipファイルをダウンロードします。今回はバージョン 5.6.31 の non-Thread Safe 版をダウンロードしました。


zipファイルのプロパティを開き[ブロックの解除]チェックボックスにチェックをし、ブロックを解除します。


zipファイルを展開します。


展開したファイルを "C:\PHP" ディレクトリに配置します。"C:\PHP" ディレクトリ以外(例えば、"C:\Program Files\PHP")に配置しても問題ありませんが、"C:\PHP"に配置するケースが多いようです。

PHP5の場合 (PHP 5.5)

PHP(Windows版)をダウンロードします。IISでPHPを動作させるため、non-Thread Safe版のPHPをインストールします。今回はPHP 5.5.13 non-Thread safe版を入手しました。


ダウンロードしたZIPファイルのプロパティを表示します。ZIPファイルがブロックされている場合は、[ブロック解除]ボタンをクリックし、ZIPファイルのブロックを解除します。

ダウンロードしたZIPファイルを展開します。


展開したフォルダをc:\Program Filesにコピーします。


[インターネット インフォメーション サービス (IIS) マネージャー]を起動します。起動後左側のツリービューでサーバーのノードを選択します。右側のエリアから[ハンドラーマッピング]を選択します。


[ハンドラ-マッピング]画面が表示されます。右側の[操作]エリアから[モジュールマップの追加]を選択します。~

[モジュール マップの追加]ダイアログが表示されます。


[モジュール]のコンボボックスを開き"FastCgiModule"を選択します。


[実行可能ファイル]欄の[...]ボタンをクリックし、実行ファイルを選択します。PHPを配置したディレクトリ内の"php-cgi.exe"を選択します。


[要求パス]は "*.php"とします。モジュールマップの名称[名前]欄は"PHP"としました。


ダイアログ下部の[要求の制限]ボタンをクリックします。下図の[要求の制限]ダイアログが表示されます。
[マップ]タブは下図の設定とします。(デフォルトのまま)


[動詞]タブは下図の設定とします。(デフォルトのまま)


[アクセス]タブは下図の設定とします。(デフォルトのまま)
[OK]ボタンをクリックしダイアログを閉じます。


元のダイアログに戻り[OK]ボタンをクリックします。下図のモジュールマップの変更確認ダイアログが表示されます。[はい]ボタンをクリックし、変更を確定します。


ハンドラ-マッピングの一覧に作成した"PHP"が追加されていることが確認できました。

動作確認

以下のテストファイルを作成します。

コード (test.php)

<?php
phpinfo();
?>

作成したPHPファイルにアクセスします。正しく動作すると下図の画面が表示されます。

著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
掲載日: 2014-06-11
iPentec all rights reserverd.