見出し画像

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帯の中など)で利用するなど条件ありきでインストールを試みてはいかがでしょうか。

この記事が気に入ったらサポートをしてみませんか?