GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu16.04にNginxでDiscourseForumをインストールする方法

Discourseは、インターネットフォーラムコミュニティとメーリングリストを作成するための無料のオープンソースソフトウェアです。 2013年に作成され、RubyおよびJavascriptプログラミング言語で記述されています。 Discourseフォーラムソフトウェアは、Codeacademy、Udacity、Twitter Developers、DockerCommunityForumなどの多くの組織で使用されています。

このチュートリアルでは、Ubuntu16.04でNginxウェブサーバーを使用してDiscourseフォーラムをインストールおよび構成する方法を段階的に説明します。具体的には、Discourseフォーラムソフトウェアをインストールし、NginxをDiscourseアプリのリバースプロキシとして構成し、Letsencryptの無料SSLを使用してDiscourseフォーラムソフトウェアを保護する方法を説明します。

何をするか
  1. Ubuntu16.04にDockerをインストールする
  2. Discourseフォーラムソフトウェアをインストールして構成する
  3. Ubuntu16.04でSSLLetsencryptを生成する
  4. NginxをDiscourseのリバースプロキシとしてインストールして構成します
  5. 談話Webインストーラー
  6. 談話の追加構成
前提条件
  • Ubuntu 16.04
  • ルート権限
  • SMTPアカウント-Mailgun、SendGrid、Mailjetなど
ステップ1-Ubuntu16.04にDockerをインストールします

Discourseソフトウェアは、メインデータベースとしてPostgreSQLを使用し、キャッシュおよび一時データ用にRedisを使用して、RubyおよびJavascriptで記述されています。 Dockerコンテナの下にDiscourseをインストールします。

インストールプロセスはUbuntu16.04で実行されます。まず、以下のコマンドを使用してDockerをインストールします。

wget -qO- https://get.docker.com/ | sh

インストールが完了したら、Dockerサービスをチェックして、システムで既に実行されていることを確認します。

systemctl status docker

また、Dockerがスタートアップブートアプリ上にあることを確認してください。

systemctl is-enabled docker

ステップ2-ディスコースフォーラムをインストールして設定する

このステップでは、Discourseソフトウェアをインストールして構成します。談話docker-composeスクリプトをダウンロードし、要件に従って構成してから、談話フォーラムソフトウェア用の新しいDockerコンテナを作成します。

新しい'/var / discourse'ディレクトリを作成し、インストーラスクリプトのクローンを作成します。

mkdir -p /var/discourse
git clone https://github.com/discourse/discourse_docker.git /var/discourse

次に、「discourse」ディレクトリに移動し、docker-composeファイルのサンプルをコピーします。

cd /var/discourse
cp samples/standalone.yml containers/app.yml

vimエディターを使用して「app.yml」ファイルを編集します。

vim containers/app.yml

Dockerポートマッピングを構成する

デフォルトでは、すべてのHTTPおよびHTTPSリクエストはDockerプロキシによって処理されます。また、このガイドでは、この目的でNginxを使用します。すべてのHTTPとHTTPSはNginxWebサーバーによって処理されます。

そのため、Dockerポートマッピング構成を変更する必要があります。 DiscourseコンテナにはHTTP接続のみがあり、ホストは新しいポート「2045」を開いてコンテナポート80にマッピングします。

HTTPS回線のコメントを解除し、HTTP回線を新しいポート「2045」に変更します。

expose:
  - "2045:80"   # http
#  - "443:443" # https
論議領界ドメイン名の構成

以下のように、「DISCOURSE_HOSTNAME」行にインストールされている談話用の独自のドメイン名を入力します。

DISCOURSE_HOSTNAME: 'discourse.hakase-labs.me'

そして、「DISCOURSE_DEVELOPER_EMAIL」行にメールアドレスを入力します。

DISCOURSE_DEVELOPER_EMAILS: '[email protected]'

SMTP構成

これは、DiscourseSoftwareの最も重要な構成です。 Discourseインストール用のSMTPアカウントを持っていることを確認してください。Mailgun、Mailjet、またはSendGridから無料のSMTPアカウントを購入または試すことができます。

このチュートリアルでは、Mailgunの無料のSMTPアカウントを使用します。 SMTP構成のコメントを解除し、以下のようにアカウントを入力します。

  DISCOURSE_SMTP_ADDRESS: smtp.mailgun.org
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: [email protected]
  DISCOURSE_SMTP_PASSWORD: mypassword

保存して終了します。

次に、app.ymlテンプレート構成に基づいて新しいDiscourseDockerイメージをビルドします。

sudo ./launcher bootstrap app

その後、以下のコマンドを使用して、新しいDiscourseコンテナを開始/初期化します。

sudo ./launcher start app

Discourseコンテナが稼働している必要があります。dockerコマンドを使用して確認してください。

docker ps -a

netstatを使用してホストの開いているポートを確認し、新しいdocker-proxyポート2045がリストに含まれていることを確認します。

netstat -plntu

Discourse Forumソフトウェアは、ホストUbuntu16.04のdockerコンテナーの下にインストールされています。

ステップ3-Ubuntu16.04でSSLLetsencryptを生成する

DiscourseフォーラムはHTTPセキュア接続の下で実行され、NginxWebサーバーによって処理されます。このガイドではLetsencryptの無料SSLを使用し、サーバーにletsencryptクライアントをインストールする必要があります。

以下のaptコマンドを使用してletsencryptをインストールします。

sudo apt install letsencrypt -y

次に、letsencryptコマンドを使用して新しいSSL証明書を生成します。

letsencrypt certonly

通知を更新するためのメールアドレスを入力し、[OK]を選択します。

Letsencrypt TOS(利用規約)の場合は、[同意する]を選択します。

次に、論議領界のドメイン名「discourse.hakase-labs.me」を入力します。

そして、それが完了すると、以下のような結果が得られます

letsencryptからの新しいSSL証明書が「/etc/letsencrypt/live」ディレクトリに生成されました。

ステップ4-NginxをDiscourseコンテナのリバースプロキシとしてインストールして設定します

このステップでは、Nginx Webサーバーをインストールし、ポート2045で実行されているDiscourseコンテナーのリバースプロキシとして構成します。

以下のaptコマンドを使用してNginxをインストールします。

sudo apt install nginx -y

次に、Nginxを起動し、systemctlコマンドを使用して起動時に起動できるようにします。

systemctl start nginx
systemctl enable nginx

Nginxがインストールされ、HTTPポート80で実行されています。これはnetstatを使用して確認できます。

netstat -plntu

NginxWebサーバーがUbuntu16.04サーバーにインストールされました。

次に、Discourseコンテナ用の新しい仮想ホストファイルを作成する必要があります。 nginx構成ディレクトリに移動し、vimエディターを使用して新しい「談話」ファイルを作成します。

cd /etc/nginx/
vim sites-available/discourse

次に、次のDiscoursenginx仮想ホスト構成を貼り付けます。

server {
    listen 80; listen [::]:80;
    server_name discourse.hakase-labs.me;
 
    return 301 https://$host$request_uri;
}
 
server {
    listen 443 ssl http2; 
    server_name discourse.hakase-labs.me;

    ssl_certificate /etc/letsencrypt/live/discourse.hakase-labs.me/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/discourse.hakase-labs.me/privkey.pem;
    include /etc/nginx/snippets/ssl.conf;
 
    location / {
        proxy_pass http://discourse.hakase-labs.me:2045/;
        proxy_set_header Host $http_host;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_redirect http://discourse.hakase-labs.me:2045/ https://discourse.hakase-labs.me;
    }
}

保存して終了します。

注:

  • すべてのHTTPリクエストは自動的にHTTPS接続にリダイレクトされます。
  • 独自のパスディレクトリでSSL構成を変更します。
  • 追加のSSL構成があります。

次に、新しい追加のssl構成ファイル「ssl.conf」を作成します。

vim snippets/ssl.conf

次の構成をファイルに貼り付けます。

ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;

ssl_protocols TLSv1.2;
ssl_ciphers EECDH+AESGCM:EECDH+AES;
ssl_ecdh_curve secp384r1;
ssl_prefer_server_ciphers on;

ssl_stapling on;
ssl_stapling_verify on;

add_header Strict-Transport-Security "max-age=15768000; includeSubdomains; preload";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;

保存して終了します。

次に、以下に示すように、「ln-s」コマンドを使用して談話仮想ホストをアクティブ化します。

ln -s /etc/nginx/sites-available/discourse /etc/nginx/sites-enabled/

構成を確認し、エラーがないことを確認してから、サービスを再起動します。

nginx -t
systemctl restart nginx

DiscourseコンテナのリバースプロキシとしてのNginxのインストールと構成が完了しました。

ステップ5-DiscourseWebインストーラー

Webブラウザーを開き、談話URLにアクセスします。

http://discourse.hakase-labs.me

そして、HTTPセキュア接続にリダイレクトされます。 [登録]ボタンをクリックして、新しい管理者ユーザーを作成します。

次に、管理者ユーザーとパスワードを入力し、[登録]をクリックします。

また、管理者ユーザーのアクティベーションに関する新しい確認メールが届きます。

以下は、Discourseアカウント確認用のサンプル電子メールメッセージです。リンクをクリックして、管理者アカウントを確認してアクティブ化します。

そして、以下に示すような談話ページを取得する必要があります。 [ここをクリックしてアカウントをアクティブ化する]ボタンをクリックします。

これで、独自のDiscourseフォーラムを構成できます。 [次へ]ボタンをクリックすると、13ステップでDiscourseフォーラムを構成する必要があります。または、[後で]をクリックして後で構成することもできます。

以下に示すのは、NginxWebサーバーにインストールされたDiscourseForumとUbuntu16.04のHTTPSです。

以下は私の談話管理ダッシュボードです。

Discourse Forumは、Ubuntu16.04サーバーにリバースプロキシとしてNginxとともにインストールされています。

ステップ6-談話の追加構成

Discourseのインストール中に、管理者ユーザーのアクティブ化の確認メールが届かないという問題が発生する場合があります。

問題を分類するには、構成app.ymlに正しいSMTPアカウントがあることを確認してください。または、サーバーから手動で管理者アカウントをアクティブ化することもできます。

管理者アカウントを手動でアクティブ化するには、「/ var/discourse」ディレクトリに移動します。

cd /var/discourse

次に、以下のコマンドを使用して談話コンテナにアクセスします。

./launcher enter app

そして、以下のようにrailsコマンドを使用して最初の管理者ユーザーをアクティブ化します。

rails c
u =User.last
u.admin =true
u.activate
u.save

これで、ユーザー名とパスワードを使用してDiscourseフォーラムにログインできます。

参照
  • https://meta.discourse.org/
  • https://github.com/discourse/discourse/tree/master/docs

Ubuntu
  1. Ubuntu22.04にDockerをインストールする方法

  2. Ubuntu18.04にNginxでWordPressをインストールする方法

  3. Ubuntu20.04にDiscourseをインストールする方法

  1. Ubuntu18.04にNginxを使用してphpMyAdminをインストールする方法

  2. CentOS7にNginxを使用してDiscourseForumをインストールする方法

  3. Ubuntu16.04にNginxでMediaWikiをインストールする方法

  1. Ubuntu15.10にNginxを使用してMagentoをインストールする方法

  2. Ubuntu15.10にNginxでMailpileをインストールする方法

  3. Ubuntu15.10でNginxを使用してRedmine3をインストールする方法