概要
小型LMSであるirohaboardは手軽なeラーニングシステムとして、ときどき利用させていただいている。
v.0.10.3からはCakePHPも内蔵されて、ほぼ設置するだけでインストールが終わるPHPの良さをいかした改善がなされている。
基本的にはapacheがサポート対象ということだったが、どうしてもIISを使わないといけないケースがあったのでgithub上で質問したところ設定方法を教えていただいたので、メモの共有。
- 前提環境: WindowsServer2016, IIS10, php7.4
- 参考issue: IIS用のweb.config設定を教えてほしい
IISの準備
-
IISにはFastCGIが使えるようモジュール設定(サーバーマネージャでインストール)しておく
URLリライトモジュールの準備
別途ダウンロード&インストールが必要。
https://www.iis.net/downloads/microsoft/url-rewrite の下のほうにある Download URL Rewrite Module 2.1 よりJapaneseのインストーラを利用した。
ググって調べたページ類だとバージョン違いのせいかURL rewriteというアイコンだったが、「URL書き換え」という名前で追加されていた。
PHPのインストール
- 参考にしたURL等
https://www.ipentec.com/document/windows-windows-server-install-php
https://www.javadrive.jp/php/install/index2.html
- ZIPファイルで提供されているPHP7.4をダウンロードする。Non-Thread-SafeことNTS版を選択する。
- リンク先にあるようにアーカイブを展開後、コマンドプロンプト上で実行できるか確認し、VCランタイムが必要といわれたら、そちらも併せてインストールする。
- IIS でハンドラマッピングを追加する
- 要求パス
*.php
がきたとき、FastCGImodule
で、php-cgi.exe
が実行されるように設定
- IISマネージャで「
既定のドキュメント
」にindex.phpを追加。 - 定番の動作確認
<?php
phpinfo();
irohaboardのインストール
※事前に接続先mysqlなりmariadbなりの設定は済ませておく
ファイル設置
今回は /apps/irohaboard
という場所にした(d:\inetpub\wwwroot\apps\irohaboard
)。
該当場所にirohaboardのアーカイブを展開。
上記例でいうところの d:\inetpub\wwwroot\apps\irohaboard
の場所に、次の内容で web.config
ファイルを設置。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Rewrite requests to test.php" stopProcessing="true">
<match url="^test.php(.*)$" ignoreCase="false" />
<action type="Rewrite" url="app/webroot/test.php{R:1}" />
</rule>
<rule name="Exclude direct access to app/webroot/*" stopProcessing="true">
<match url="^app/webroot/(.*)$" ignoreCase="false" />
<action type="None" />
</rule>
<rule name="Rewrite routed access to assets (img, css, files, js, favicon)" stopProcessing="true">
<match url="^(img|css|files|js|favicon.ico)(.*)$" />
<action type="Rewrite" url="app/webroot/{R:1}{R:2}" appendQueryString="false" />
</rule>
<rule name="Rewrite requested file/folder to index.php" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<action type="Rewrite" url="index.php" appendQueryString="true" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
DB接続先設定
app/Config/database.phpを適宜書き換える
インストーラを起動
あとは通常どおり /install にブラウザからアクセスすればセットアップ画面になるので、指示にしたがい初期設定。
まとめ
irohaboardはCakePHPベースなので、そちらを参照すればよかったらしい。
apache用の.htaccessは /, /app, /app/webroot にあるので、IISでも同様に読み替えればよいのかとおもったが、/ 相当の場所のみの設定でOKだった。