UbuntuにphpMyFAQをインストールしてみる
社内向けFAQシステムって、クラウドでも様々なサービスが出ています。昔流行ったナレッジマネジメントシステムというジャンルの1つではありますが、正直言って活用できてる会社って、殆ど無いのではないかと(理由は巨大掲示板と違って回答するメンツが社内の100名とかその程度に限られる為、全然母数足らないのが理由。面倒という人も多い)
まずは、いきなり外部のクラウドサービス契約して散財するのではなく、社内オンプレの鯖にでも構築して、自社で活用する余地があるのか確かめてから、やるべきでしょう。
目次
概要
今回使用するシステムと要件
- phpMyFAQ - 海外OSSのPHPとMySQL等のシンプル構成で動作します
システム要件としては、
- php Version 7.1以上
- MySQL, SQLite、PostgreSQL、SQL Server等に対応
- Apache 2.4以上、nginx 1.0以上、IIS 7.0以上、lighthttpd 1.4以上に対応
- 主要ブラウザに対応(IE11も含む)
- 主要なOSに対応
また、iOS用にはアプリも用意されているようです。
同類のFAQシステム
- Vanilla Forum - PHP製の掲示板システム。TwitterやFacebook認証も利用でき、日本語対応。但し、UIは日本語化ロケールを入れても日本語化されません。残念。php-intl拡張が必要。
- Discourse - Ruby製のStackOverFlowのようなQAシステム。日本語対応。但し、Dockerが必要。
- Question2Answer - 非常に古いQAシステムでPHP製。かつてはメジャーであったことも。
- Scoold - StackOverFlowクローンQAシステム。Java製。ただ殆ど国内に知見がないのが・・・
- shapado - Ruby製のStackOverFlow風のQAシステム。MongoDBを利用している
他にもFAQではないものの、dokuwikiといったWikiシステムなど色々とあります。
インストール準備
今回はMySQLとapache2を利用します。ここでは、仮想環境のUbuntu 18.04上にphpMyFAQをインストールしてみたいと思います。自分が使ってるそれぞれのバージョンは以下の通り
- apache2 - version 2.4.29
- MySQL - version 5.7.25
apache2のインストール
1 2 |
sudo apt update sudo apt install apache2 |
/var/www/html以下がドキュメントルートになります。また、apacheの設定ファイルは、/etc/apache2/apache2.confとなり、site-available以下がDocumentrootの設定ファイルの場所になります。
php 7.2のインストール
1 2 3 4 5 6 |
sudo apt install software-properties-common sudo apt update sudo apt install -y php sudo apt install php7.2 php7.2-fpm php7.2-mysql php7.2-mbstring php7.2-zip php7.2-xml sudo apt install php-curl sudo apt install php-gd |
MySQLのインストール
1 2 3 4 |
sudo apt update sudo apt install mysql-server service mysql start sudo mysql_secure_installation |
- 上記インストールコマンド完了したら、mysql_secure_installationコマンドでセットアップを開始するのですが、今回エラーが出ました。「Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’」
- sudo touch /tmp/mysql.sockでソケットファイルをつくってあげる
- また、作成したソケットの権限を、sudo chown ユーザ名 /tmp/mysql.sockで変更
- mysql_secure_installationコマンドで、セットアップ開始。rootのパスワード設定他、基本的にはYで回答しておけばオッケー。
phpMyFAQのインストール
- phpMyFAQのサイトより最新版2.9.13をダウンロードする。
- zipファイルをアーカイバで解凍すると、phpmyfaqというフォルダが入っていて、これをapache2のドキュメントルートにでも配置すると良いでしょう。
- phpmyfaqフォルダ内にattachmentsという名のフォルダを作る
- 同じくdataという名のフォルダを作る
- 同じくimagesという名のフォルダを作る
- 以下のコマンドで各フォルダへのアクセス権限を設定する
1 2 3 4 |
sudo chmod -R 777 /var/www/html/phpmyfaq/attachments sudo chmod -R 777 /var/www/html/phpmyfaq/data sudo chmod -R 777 /var/www/html/phpmyfaq/config sudo chmod -R 777 /var/www/html/phpmyfaq/images |
MySQLにデータベースを作成しておく
1 2 3 4 |
create database faqsystem; exit sudo service apache2 restart |
できれば、このfaqsystemというDatabase専用の管理者アカウントを作っておくと便利です。
1 |
grant all privileges on faqsystem.* to faqman@localhost identified by 'password'; |
phpMyFAQのセットアップ
事前準備が完了していれば、apache2再起動後にhttp://localhost/phpmyfaqにアクセスすると、セットアップ画面が出てきます。
- ServerはMySQLが検出されているはず
- Host/Socketはlocalhostを指定
- Userはdatabaseにアクセスする管理者のユーザアカウント
- Passwordはdatabaseにアクセスする管理者のパスワード
- databaseは今回つくったもの(faqsystem)
- Default LanguageはJapaneseを指定
- Permission LevelはBasicでOK
- Your Nameはログインする初期ユーザの名前
- メールアドレスは8.の人のアドレス
- Your Login Nameは8.の人のログインID
- Your Passwordは8.の人のログインパスワード
- retype passwordは11.と同じパスワードを入力
- 最後にclick to install phpMyFAQのボタンをクリックする
- Please delete the file ./setup/index.php manually.と出るので、setupフォルダ内のindex.phpを手動削除
- Please delete the file ./setup/update.php manually.と出るので、setupフォルダ内のupdate.phpを手動削除
図:セットアップ画面
図:インストール完了画面
管理画面
インストールが完了したら、同じくhttp://localhost/phpmyfaqにアクセスしてみる。設定した初期ユーザのIDとPASSWORDでログインしてみよう。右上にLoginがあるので、クリックする。なぜかまだこの段階では、英語のUIのまま。
- 設定したユーザIDとパスワードでログイン
- 右上にユーザ名が出て、再度クリックするとadmnistrationが出るのでクリック
- 入ると管理画面が出る。まだ英語表記なので、左サイドパネルのconfigurationをクリック
- 右上の言語がEnglishになってるので、Japaneseに変更するとようやくUIが日本語化される。
- また本番でつかう場合には、リンク確認の基準URLをきちんと本番サーバのIPアドレスに変更しておきましょう。localhostだとサーバ上からじゃないと接続できません。
- 左サイドパネルのユーザにて利用者をどんどん登録してゆきましょう。
- 左サイドパネルのコンテンツ⇒カテゴリにて、初期カテゴリを作っておきましょう(メインカテゴリーの追加)
図:ユーザ追加画面