フォーラムCMSであるDiscourseをインストールする手順について。
従来のフォーラムCMSであるphpBBからの乗り換えです。Dockerのコンテナとして動作させます。
既に稼働しているApacheサーバと共存させるため、ポート番号を80以外に指定してインストールします。Apacheのmod_proxyにより同一グローバルIP内でポート80へのアクセスにはwww.example.com、ポート8088へのアクセスにはwww.example-discouse.comを対応させます。
インストール環境はUbuntu Server 16.04です。
まず初めに以下のライブラリをインストールします。
$ sudo apt-get install libxml2-dev
Apacheのproxyとproxy_httpモジュールを有効にします。
$ sudo a2enmod proxy
$ sudo a2enmod proxy_http
/etc/apache2/sites-available内にdiscourse.confを作成し下記を記述します。
<VirtualHost *:80>
ServerName www.example-discourse.com
ProxyPass / http://localhost:8088/
ProxyPassReverse / http://localhost:8088/
</VirtualHost>
SeverNameは任意です。
上記設定を有効にし、Apacheを再起動します。
$ sudo a2ensite discourse.conf
Apacheを再起動します。
$ sudo service apache2 restart
Docker/Gitのインストール
下記コマンドでDockerとGitがセットでインストールされます。
$ sudo wget -qO- https://get.docker.com/ | sh
Discourseのインストール
$ sudo -s
# mkdir /var/discourse
# git clone https://github.com/discourse/discourse_docker.git /var/discourse
# cd /var/discourse
discourse-setup内で
check_ports() {
check_port "8088"
check_port "443"
echo "Ports 8088 and 443 are free for use"
}
80を8088と書換えてセットアップコマンドを実行します。check_port "443"は、メインサーバで使用する場合削除して下さい。
# ./discourse-setup
以下の設問への答えを予め用意して下さい。
Hostname for your Discourse? [discourse.example.com]:
Email address for admin account? [[email protected]]:
SMTP server address? [smtp.example.com]:
SMTP user name? [[email protected]]:
SMTP port [587]:
SMTP password? []:
containersフォルダ内にapp.ymlが作成されますが、ここでもポートの指定が必要です。
注意)443ポートをメインサーバで使用する場合、この行は削除します。
expose:
- "8088:80" # http
- "443:443" # https
以下コマンドで再ビルドします。
# ./launcher rebuild app
指定したアドレスを入力すると下記のようなサイトが表示されます。