Muni Bus

パソコンの操作方法や設定方法を忘れないようにメモしています。ブログを一回引っ越ししているので、所々表示がかなり乱れています・・・

【IIS】IISでPHPを使う

2023年4月時点のPHPの最新バージョンは8.2.4。これを使う。まずは公式ページ(https://windows.php.net/download#php-8.2)からダウンロードする。左側に以下のとおりに表示されているとおりに、

IIS
If you are using PHP as FastCGI with IIS you should use the Non-Thread Safe (NTS) versions of PHP.

ノンスレッドセーフ版(VS16 x64 Non Thread Safe)を使用する。EXEファイルは提供されておらずZIPファイル(php-8.2.4-nts-Win32-vs16-x64.zip、30.2MB)が提供されており、これをダウンロードする。

フォルダーC:\phpを作成し、圧縮ファイルの中身をすべて展開する。

C:\phpphp.ini-developmentがあるはず。これをコピーして、そのファイル名をphp.iniとして同じフォルダーに保存する。 php.iniをテキストエディタで開き、以下の6つの項目はいずれもコメント化されているが、先頭の;(セミコロン)を削除して有効にし、等号の右側の値を以下のとおりにする。open_basedirにはドキュメントのルートディレクトリを、opcache.error_logにはエラー発生時に出力するログの出力ファイルを指定する。

fastcgi.impersonate = 1
cgi.fix_pathinfo = 0
cgi.force_redirect = 0
extension_dir = "./ext"

エクスプローラーで左側の「PC」を右クリック、「プロパティ」をクリック。「設定」ウィンドウが表示される。

右側の「システムの詳細設定」をクリック。「システムのプロパティ」ダイアログが表示される。

「詳細設定」タブの右下の「環境変数」ボタンをクリック。「環境変数」ダイアログが表示される。

下側の「システム環境変数」から「Path」を探してクリックし、下の「編集」ボタンをクリック。「環境変数名の編集」ダイアログが表示される。

「新規」ボタンをクリックして、「C:\php」を追加して(最後でかまわない)、「OK」ボタンをクリック。「環境変数」ダイアログに戻る。

「OK」ボタンをクリック。「システムのプロパティ」ダイアログに戻る。

「OK」ボタンをクリック。これで環境変数が設定された。

インターネットインフォーメーションサービス(IIS)マネージャーを起動する。

左側の「接続」パネルで、当該サーバのホスト名をクリック。真ん中の「○○ホーム」パネルで「ハンドラーマッピング」アイコンをダブルクリック。真ん中のパネルが「ハンドラーマッピング」になる。右側の「操作」パネルの「モジュールマップの追加...」をクリック。「モジュールマップの追加」ダイアログが表示される。

以下のように入力する。

要求パス:*.php
モジュール:FastCgiModule
実行可能ファイル(オプション):C:\php\php-cgi.exe
名前:FastCGI

「OK」ボタンをクリック。以下のダイアログが表示されるが「はい」ボタンをクリックする。

中央の「ハンドラーマッピング」パネルに「FastCGI」が追加されたはず。

左側の「接続」パネルのホスト名をダブルクリック。中央の「○○ホーム」の「既定のドキュメント」アイコンをダブルクリック。右側の「操作」パネルの「追加...」をクリック。「既定のドキュメントを追加」ダイアログが表示される。

「名前」に「index.php」を入力して「OK」ボタンをクリック。同様にして、「default.php」も入力して「OK」ボタンをクリック。中央の「既定のドキュメント」パネルに、それぞれ「index.php」と「default.php」が追加されたはず。

これでPHPが使えるようになったはず。動作確認を行う。以下の3行からなるテキストファイルを作成して、ドキュメントのルートディレクトリ(通常は「C:\inetpub\wwwroot」)にphpinfo.phpと保存する。

<?php
phpinfo();
?>

http://localhost/phpinfo.phpをブラウザで開いてページが正しく表示されれば成功。

参考は以下のページ。
https://learn.microsoft.com/ja-jp/iis/application-frameworks/install-and-configure-php-on-iis/install-and-configure-php