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ファイルのブロックを解除します。
![](/document/image/windows-windows-server-install-php-17.png)
ダウンロードしたZIPファイルを展開します。
展開したフォルダをc:\Program Filesにコピーします。
[インターネット インフォメーション サービス (IIS) マネージャー]を起動します。起動後左側のツリービューでサーバーのノードを選択します。右側のエリアから[ハンドラーマッピング]を選択します。
[ハンドラ-マッピング]画面が表示されます。右側の[操作]エリアから[モジュールマップの追加]を選択します。~
[モジュール マップの追加]ダイアログが表示されます。
[モジュール]のコンボボックスを開き"FastCgiModule"を選択します。
[実行可能ファイル]欄の[...]ボタンをクリックし、実行ファイルを選択します。PHPを配置したディレクトリ内の"php-cgi.exe"を選択します。
[要求パス]は "*.php"とします。モジュールマップの名称[名前]欄は"PHP"としました。
ダイアログ下部の[要求の制限]ボタンをクリックします。下図の[要求の制限]ダイアログが表示されます。
[マップ]タブは下図の設定とします。(デフォルトのまま)
[動詞]タブは下図の設定とします。(デフォルトのまま)
[アクセス]タブは下図の設定とします。(デフォルトのまま)
[OK]ボタンをクリックしダイアログを閉じます。
元のダイアログに戻り[OK]ボタンをクリックします。下図のモジュールマップの変更確認ダイアログが表示されます。[はい]ボタンをクリックし、変更を確定します。
ハンドラ-マッピングの一覧に作成した"PHP"が追加されていることが確認できました。
動作確認
以下のテストファイルを作成します。
コード (test.php)
<?php
phpinfo();
?>
作成したPHPファイルにアクセスします。正しく動作すると下図の画面が表示されます。
著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。