naichi's lab

3日後の自分(他人)への書き置き

question2answerを使ってQ&Aサイトを立ち上げてみる

unityroom.com に関して似たような質問を何度もいただくので、Q&Aサイトでも作ってみるか〜と思い立った。

ぐぐってみたら Question2Answer - Free Open Source Q&A Software for PHP っていうのが見つかった。

LAMP環境さえあればすぐ動きそうだったので試してみる。

スパムまみれになったらすぐ閉鎖するかも。

LAMPサーバー作成

  • ConoHa VPSで作る
  • VPS 512MB
  • アプリケーション -> LAMP(PHP)イメージ
    • f:id:naichilab:20200715021031p:plain:w320
  • rootパスワードとネームタグを設定
  • オプションは接続可能ポートとか設定
    • f:id:naichilab:20200715021052p:plain:w320

SSH接続

  • ConoHa管理画面でIPを確認
  • サーバー作成時に公開鍵を選択しておくとサーバー側のSSH設定不要なので楽。
Host q2a
  HostName xxx.xxx.xxx.xxx
  User root
  Port 22
  IdentityFile ~/.ssh/naichi-mbp-conoha.pem
  • ssh q2a で接続できることを確認
  • 画面上にMySQLのrootパスワードが表示されている。

DB作成

サーバーで

# mysql -u root -pXXXXXXXXX

MySQLに接続できたら

> create database q2a;
Query OK, 1 row affected (0.00 sec)
> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| q2a                |
| test               |
+--------------------+
5 rows in set (0.00 sec)
> quit
Bye

question2answerダウンロード

ローカルで

ファイルアップロード

ローカルで

$ scp -r ~/Downloads/question2answer-1.8.4/* q2a:/var/www/html

Q2AのDB設定

サーバーで

  • qa-config-example.phpqa-config.php にリネーム
# /var/www/html/qa-config.php

define('QA_MYSQL_HOSTNAME', 'localhost');
define('QA_MYSQL_USERNAME', 'root');
define('QA_MYSQL_PASSWORD', 'XXXXXXXXXXX');
define('QA_MYSQL_DATABASE', 'q2a');

ついでに /var/www/html/phpinfo.php は不要なので消しておいた。

Q2Aの管理者ユーザーの作成

  • ConoHaサーバーのIPにブラウザで接続
  • DB接続できればこの画面が出る
    • f:id:naichilab:20200715021423p:plain:w320
  • 管理者ユーザーを作成
    • f:id:naichilab:20200715021431p:plain:w320
  • 作成完了
    • f:id:naichilab:20200715021441p:plain:w320
  • 管理者画面に入り、言語とテーマを変更
    • f:id:naichilab:20200715021536p:plain:w320
  • 見た目が変わった
    • f:id:naichilab:20200715021551p:plain:w320

DNS設定

  • unityroom.com のサブドメイン( question.unityroom.com )で接続したい
  • unityroom.com のDNSはCloudFlareを使ってるのでそこで設定する。
  • AレコードにサーバーIPを登録
    • f:id:naichilab:20200715025528p:plain:w320
  • ブラウザで接続してみると523エラー

firewall設定

サーバーで

# firewall-cmd --list-services
dhcpv6-client http ssh
# firewall-cmd --add-service=https --permanent
success
# firewall-cmd --reload
success
# firewall-cmd --list-services
dhcpv6-client http https ssh

エラーは521に変わったけどまだダメ

f:id:naichilab:20200715030017p:plain:w320

SSL証明書の設定

<VirtualHost *:80>
  ServerAdmin root@localhost
  DocumentRoot /var/www/html
  ServerName question.unityroom.com
</VirtualHost>
  • ドメインは question.unityroom.com

つながった

あとは何の設定がいるだろうか。

これやっとかないとマズいんじゃない?みたいなのがあれば教えて下さい。

完成

unityやunityroomに関する質問ができるサイトをリリースしました。

question.unityroom.com

よろしくね