GNU/Linux >> Linux の 問題 >  >> Cent OS

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

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

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

私たちが行うこと

  1. CentOS7にDockerをインストールする
  2. Discourseフォーラムソフトウェアのインストールと構成
  3. CentOS7でSSLLetsencryptを生成する
  4. 談話のリバースプロキシとしてNginxをインストールして構成する
  5. 談話Webインストーラー
  6. 談話の追加構成

前提条件

  • CentOS 7
  • ルート権限
  • SMTPアカウント-例: Mailgun、SendGrid、またはMailjetから
ステップ1-CentOS7にDockerをインストールする

談話フォーラムはDockerコンテナの下にインストールされます。したがって、最初に実行する必要があるのは、CentOS7サーバーにDockerをインストールすることです。

次のコマンドを使用して、CentOS7にDockerをインストールします。

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

wgetコマンドがない場合は、リポジトリからインストールしてください。

yum -y install wget

インストールが完了したら、Dockerサービスを起動し、次のsystemctlコマンドを使用して起動時に起動できるようにします。

systemctl start docker
systemctl enable docker

Dockerエンジンがインストールされ、CentOS7サーバーで実行されています。次のコマンドを使用してサービスステータスを確認します。

systemctl status docker

Dockerサービスがアクティブで実行されています。

ステップ2-Discourseフォーラムソフトウェアをインストールして構成する

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

談話をダウンロードする前に、サーバーにgitコマンドをインストールする必要があります。

yum -y install git

次に、新しいディレクトリ'/ var / discourse'を作成し、gitコマンドを使用してdiscoursedockerスクリプトをダウンロード/クローンします。

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

discourseディレクトリに移動し、docker-composeスクリプト「standalone.yml」のサンプルを「app.yml」という名前の「/ var / discourse /container/」ディレクトリにコピーします。

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.co'

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

DISCOURSE_DEVELOPER_EMAILS: '[email protected]'

-SMTP構成

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

このチュートリアルでは、Mailgunの無料の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

そして、DiscourseDockerコンテナが稼働しています。「dockerps」コマンドを使用して確認してください。

docker ps -a

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

netstat -plntu

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

ステップ3-CentOS7でSSLLetsencryptを生成する

このチュートリアルでは、Nginx WebサーバーでDiscourseフォーラムを実行し、HTTPS接続のみを受け入れます。この目的のために、ドメイン名に新しいSSL証明書が必要なので、Letsencryptの無料のSSL証明書を使用します。

次のようにyumコマンドを使用してLetsencryptコマンドラインツールをインストールします。

yum -y install letsencrypt

インストール後、Firewalld構成に新しいHTTPおよびHTTPSサービスを追加します。

firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload

次に、以下のletsencryptコマンドを使用して、Discourseフォーラムの新しいSSL証明書を生成します。

letsencrypt certonly

Letsencryptから2つの検証が表示されます。番号「1」を入力して、認証用の一時的なWebサーバーを起動します。

この一環として、通知を更新するためのメールアドレスを入力し、「A」と入力して、letsencrypt TOS(利用規約)に同意します。

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

プロセスが完了すると、次のような結果が得られます。

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

ステップ4-NginxをDiscourseのリバースプロキシとしてインストールおよび構成する

このチュートリアルでは、Dockerコンテナで実行されているDiscourseのリバースプロキシとしてNginxWebサーバーを使用します。 NginxウェブサーバーはHTTPおよびHTTPSポートで実行され、すべてのクライアントリクエストはNginxによって処理されます。

Nginx Webサーバーをインストールする前に、システムにEPELリポジトリをインストールする必要があります。

yum -y install epel-release

次に、次のyumコマンドを使用してEPELリポジトリからnginxをインストールします。

yum -y install nginx

すべてのインストールが完了したら、nginx構成ディレクトリ'/ etc/nginx'に移動します。

cd /etc/nginx/

そして、vimを使用して新しい追加のSSL構成「ssl.conf」を作成します。

vim ssl.conf

次のSSL構成をそこに貼り付けます。

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;

変更を保存して、エディターを終了します。

次に、Discourse用の新しいnginx仮想ホストファイル「discourse.conf」を作成します。

vim conf.d/discourse.conf

次の構成をそこに貼り付けます。

server {
    listen 80; listen [::]:80;
    server_name discourse.hakase-labs.co;
 
    # Automatic Redirect HTTP to HTTPS Nginx
    return 301 https://$host$request_uri;
}
 
server {
    listen 443 ssl http2; 
    server_name discourse.hakase-labs.co;

    # SSL Configuration
    ssl_certificate /etc/letsencrypt/live/discourse.hakase-labs.co/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/discourse.hakase-labs.co/privkey.pem;
    include /etc/nginx/ssl.conf;
 
    # Reverse Proxy Configuration
    location / {
        proxy_pass http://discourse.hakase-labs.co: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.co:2045/ https://discourse.hakase-labs.co;
    }
}

保存して終了します。

次に、nginx構成をテストし、エラーがないことを確認します。次に、Nginxサービスを再起動します。

nginx -t
systemctl restart nginx

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

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

ウェブブラウザを開き、談話のURLにアクセスします。私のものは次のとおりです。

http://discourse.hakase-labs.co

そして、HTTPS接続にリダイレクトされます。

[登録]をクリックします 'ボタン。

次に、新しい「管理者」アカウントを作成する必要があります。

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

そして、あなたは電子メール確認のためのページを得るでしょう。メールの受信トレイを確認し、以下のようにDiscourseフォーラムからメール設定を取得していることを確認してください。

'リンクをクリックします '。

そして、「談話へようこそ」ページが表示されます。

ボタンをクリックします'アカウントをアクティブ化するには、ここをクリックしてください '。そして今、あなたは次のページに行くべきです。

'多分後でをクリックします 'ボタン。

Discourse Forumがインストールされ、以下に示すデフォルトのホームページが表示されます。

「管理ダッシュボード」に移動すると、Discourse管理ダッシュボードが表示されます。

Discourse Forum Softwareは、CentOS7サーバーのリバースプロキシとして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フォーラムにログインできます。


Cent OS
  1. CentOS8にDockerをインストールする方法

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

  3. CentOS 7 /RHEL7にNginxを使用してphpMyAdminをインストールする方法

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

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

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

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

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

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