Windows ServerにphpMyFAQのインストール
『よくある質問』を社内で集約・公開することは、色々な問い合わせが減る。勘違いや自信の無い回答・齟齬などを少なくする。など多くのメリットがあります。
FAQサイトを構築できるOSSである【phpMyFAQ】の導入を行います。
導入環境は【Windows Server 2019】【IIS】【SQL Server 2019】を軸としております。
インストールするパッケージの選定
2022年4月10日現在のphpMyAdminの最新版は【phpMyFAQ 3.1.2】ですが、
【PHP 8.1.2】でも【PHP 8.0.18】でも【PHP 7.4.27】
において【グループの作成を行った際などに】エラー(ワーニング含む)が発生する為、選定から外しました。
※4月26日現在【phpMyFAQ 3.1.4】が最新ですので、後日試してみます。
phpMyFAQ
ひとつ前のバージョンとなる【phpMyFAQ 3.0.12】を使用します。
※ダウンロードは【こちら】から
PHP
【phpMyFAQ 3.0.12】に対応するPHPのバージョンを確認したところ、Changelogには
【phpMyFAQ 3.0.6】:added support for PHP 8.0
【phpMyFAQ 3.0.0】:changed PHP requirement to PHP 7.2+
とありました。
しかしながら【PHP 8.0.18】でも【PHP 7.4.27】では【グループの作成を行った際などに】エラー(ワーニング含む)が発生する為、選定から外しました。
結果として【php 7.3.33】を使用します。
※ダウンロードは【こちら】から
SQL Server用ドライバ
つづいて【php 7.3.33】に対応するSQL Serverのドライバをダウンロードします。
【Microsoft SQL Server 用 Drivers for PHP のリリース ノート】を確認します。
【5.10】:PHP 7.3 のサポートを終了しました。
とあり、最新(2022年4月)は非対応となっております。
今回は【5.9】を使用します。
ドライバの導入方法は【IISと連携したPHPからSQL Serverへの接続(準備編)】をご確認ください。
なお、今回PDOドライバは使いませんが、設定しても問題ありません。
必要なファイルは【php_sqlsrv_73_nts_x64.dll】となります。
インストール環境の構築
Windows Server 2019の構築
IISの機能追加
※重要※【index.php】を規定のドキュメント(ファイル名の指定無しで表示・実行できるファイル)として指定します。
PHPを使えるようにする
ここで登録するPHPを【PHP 7.3.33】にしましょう。
なお、IISではサイト単位でハンドラーマッピングを設定可能です。
バーチャルホスト等でphpMyFAQを構築する場合はサイトで設定するのが良いと思います。
php.iniの修正(※php.ini-productionとの比較)
※コマンドプロンプト(cmd)
C:\Users\Administrator>fc /n C:\PHP-NTS\7.3\php.ini-production C:\PHP-NTS\7.3\php.ini
ファイル C:\PHP-NTS\7.3\php.ini-production と C:\PHP-NTS\7.3\PHP.INI を比較しています
***** C:\PHP-NTS\7.3\php.ini-production
755: ; On windows:
756: ;extension_dir = "ext"
757:
***** C:\PHP-NTS\7.3\PHP.INI
755: ; On windows:
756: extension_dir = "ext"
757:
*****
***** C:\PHP-NTS\7.3\php.ini-production
908: ;extension=bz2
909: ;extension=curl
910: ;extension=fileinfo
911: ;extension=gd2
912: ;extension=gettext
***** C:\PHP-NTS\7.3\PHP.INI
908: ;extension=bz2
909: extension=curl
910: extension=fileinfo
911: extension=gd2
912: ;extension=gettext
*****
***** C:\PHP-NTS\7.3\php.ini-production
916: ;extension=interbase
917: ;extension=ldap
918: ;extension=mbstring
919: ;extension=exif ; Must be after mbstring as it depends on it
***** C:\PHP-NTS\7.3\PHP.INI
916: ;extension=interbase
917: extension=ldap
918: extension=mbstring
919: ;extension=exif ; Must be after mbstring as it depends on it
*****
***** C:\PHP-NTS\7.3\php.ini-production
922: ;extension=odbc
923: ;extension=openssl
924: ;extension=pdo_firebird
***** C:\PHP-NTS\7.3\PHP.INI
922: ;extension=odbc
923: extension=openssl
924: ;extension=pdo_firebird
*****
***** C:\PHP-NTS\7.3\php.ini-production
932:
933: ; The MIBS data available in the PHP distribution must be installed.
***** C:\PHP-NTS\7.3\PHP.INI
932:
933:
934: extension=php_sqlsrv_73_nts_x64.dll
935:
936: ; The MIBS data available in the PHP distribution must be installed.
*****
C:\Users\Administrator>
要約版
※コメントを外す部分
756: extension_dir = "ext"
909: extension=curl
910: extension=fileinfo
911: extension=gd2
917: extension=ldap
918: extension=mbstring
923: extension=openssl
※ドライバを追加した部分
934: extension=php_sqlsrv_73_nts_x64.dll
SQL Server 2019 の構築とデータベースの作成
まず、phpMyFAQ用のデータベースを作成します。(他と混合は可能ですが特に混合する必要が無ければ単独でよい)
続いて作成したデータベースに【SQLサーバー認証】で接続できるユーザーを作成し【db_owner】の権限を付与します。
phpMyFAQの展開
【phpMyFAQ 3.0.12】を解凍(展開)して、IISから接続可能な場所に配置します。
phpMyFAQのインストール
phpMyFAQを展開した箇所にウェブブラウザから接続します。
【http(s)://*******/】or【http(s)://*******/faq/】などでしょうか・・・。
※ローカル環境でなくてもOKです。
Database setup
Server:MS SQL Server
Host/Socket:127.0.0.1
Port:1433 ※MS SQL Serverの構築時に開放したポート
User:【db_ownerの権限を持つユーザー】
Password:【上記ユーザーのパスワード】
Database:【phpMyFAQ用のデータベース】
Table prefox:【基本的に不要】
LDAP setup
未設定でOK(理解している方は登録してください)
※LDAPSが使えるのかは未チェック
phpMyFAQ setup
Default language:Japanese
Permission level:Medium ※グループ権限必要時は【Medium】or【Large】
Your name:【管理者の名前】 (ex FAQ Admin)
Your email address:【管理者のメールアドレス】
Your login name:【管理ログイン用の名前】 (ex Admin)
Your Password:【管理ログイン用のパスワード】
Elasticserch setup
今回は省略
インストールの実行
各項目の入力が完了後、末尾の【Click to install phpMyFAQ 3.0.12】を押下します。
上記のように【Wow, looks like the installation worked like a charm. This is pretty cool, isn't it? :-)】と表示されればインストール成功です。
phpMyFAQの設定
インストール完了後に表示される画面上にある【admin section】を押下します。
または、インストール時に使用したURLに【/admin】を付与したURLを開きます。
この後は別ノート【phpMyFAQのカスタマイズ】を参照ください。(後日公開)
後記
IISとPHPとMSSQLをベースとしてのインストールはレアなのか情報が少なく少々頭を悩ませるインストールでした。何度か軽微なワーニングを見逃し、とりあえずインストールをして・・・進んでみたもののしっくりとこなかった為、バージョン戻しをしながらエラーの発生しない環境としております。なお、本バージョンでの運用が適切であるとは思っていません。セキュリティ的にも脆弱な部分がわかっておりますし、一部サポートが切れているソフトウェアも使用しております。
社内(サーバーはプライベートIP帯の中など)で利用するなど条件ありきでインストールを試みてはいかがでしょうか。