GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So installieren Sie das Discourse Forum mit Nginx unter CentOS 7

Discourse ist eine kostenlose Open-Source-Software zum Erstellen von Internetforen, Communitys und Mailinglisten. Es wurde 2013 erstellt und mit den Programmiersprachen Ruby und Javascript geschrieben. Discourse-Forum-Software wurde von vielen Organisationen verwendet, darunter Codeacademy, Udacity, Twitter Developers, Docker Community Forum usw.

In diesem Tutorial zeigen wir Ihnen Schritt für Schritt, wie Sie Discourse Forum mit Nginx-Webserver unter dem CentOS 7-Server installieren und konfigurieren. Insbesondere zeigen wir Ihnen, wie Sie die Discourse Forum-Software installieren, Nginx als Reverse-Proxy für die Discourse-App konfigurieren und die Discourse Forum-Software mit kostenlosem SSL von Letsencrypt sichern.

Was wir tun werden

  1. Installieren Sie Docker unter CentOS 7
  2. Installieren und konfigurieren Sie die Software für das Diskursforum
  3. Generieren Sie SSL Letsencrypt auf CentOS 7
  4. Installieren und konfigurieren Sie Nginx als Reverse-Proxy für Discourse
  5. Discourse Web Installer
  6. Zusätzliche Diskurskonfiguration

Voraussetzungen

  • CentOS 7
  • Root-Berechtigungen
  • SMTP-Konto - z. von Mailgun, SendGrid oder Mailjet

Schritt 1 – Docker auf CentOS 7 installieren

Das Diskursforum wird unter dem Docker-Container installiert. Der erste Schritt, den wir also tun müssen, ist die Installation von Docker auf unserem CentOS 7-Server.

Installieren Sie Docker unter CentOS 7 mit dem folgenden Befehl.

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

Wenn Sie den wget-Befehl nicht haben, installieren Sie ihn aus dem Repository.

yum -y install wget

Wenn die Installation abgeschlossen ist, starten Sie den Docker-Dienst und ermöglichen Sie ihm, beim Booten mit den folgenden systemctl-Befehlen gestartet zu werden.

systemctl start docker
systemctl enable docker

Die Docker-Engine wurde installiert und läuft auf dem CentOS 7-Server. Überprüfen Sie den Dienststatus mit dem folgenden Befehl.

systemctl status docker

Der Docker-Dienst ist aktiv und wird ausgeführt.

Schritt 2 – Installation und Konfiguration der Discourse-Forum-Software

In diesem Schritt installieren und konfigurieren wir die Discourse-Software. Wir laden das discourse docker-compose-Skript herunter, konfigurieren es nach Bedarf und erstellen dann einen neuen Docker-Container für die Discourse-Forum-Software.

Vor dem Herunterladen von Diskurs müssen wir den Befehl git auf dem Server installieren.

yum -y install git

Erstellen Sie nun ein neues Verzeichnis „/var/discourse“ und laden Sie das Diskurs-Docker-Skript mit dem Befehl git herunter/klonen.

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

Wechseln Sie in das Diskursverzeichnis und kopieren Sie ein Beispiel des docker-compose-Skripts „standalone.yml“ in das Verzeichnis „/var/discourse/containers/“ mit dem Namen „app.yml“.

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

Bearbeiten Sie nun die Datei ‚app.yml‘ mit vim.

vim containers/app.yml

- Docker-Port-Zuordnung

Standardmäßig werden alle HTTP- und HTTPS-Anforderungen vom Docker-Proxy verarbeitet. Und für diesen Leitfaden werden wir zu diesem Zweck Nginx verwenden – alle HTTP- und HTTPS-Daten werden vom Nginx-Webserver verarbeitet.

Daher müssen wir die Docker-Port-Mapping-Konfiguration ändern. Der Discourse-Container hat nur die HTTP-Verbindung, und der Host wird den neuen Port „2045“ öffnen und dem Container-Port 80 zuordnen.

Entkommentieren Sie die HTTPS-Zeile und ändern Sie die HTTP-Zeile mit dem neuen Port „2045“, wie unten gezeigt.

expose:
  - "2045:80"   # http
#  - "443:443" # https

- Konfiguration des Diskurs-Domänennamens

Geben Sie Ihren eigenen Domainnamen für den Diskurs ein, der wie unten in der Zeile „DISCOURSE_HOSTNAME“ installiert ist.

DISCOURSE_HOSTNAME: 'discourse.hakase-labs.co'

Geben Sie Ihre E-Mail-Adresse in die Zeile „DISCOURSE_DEVELOPER_EMAIL“ ein.

DISCOURSE_DEVELOPER_EMAILS: '[email protected]'

- SMTP-Konfiguration

Die SMTP-Konfiguration ist die wichtigste Konfiguration für Discourse Software. Stellen Sie sicher, dass Sie das SMTP-Konto für die Installation von Discourse haben – Sie können ein kostenloses SMTP-Konto von Mailgun, Mailjet oder SendGrid kaufen oder ausprobieren.

Für dieses Tutorial verwenden wir das Free-Tier-SMTP-Konto von Mailgun. Registrieren Sie sich bei Mailgun, konfigurieren Sie Ihren Domänennamen und stellen Sie sicher, dass Sie Details zu Ihrem SMTP-Konto erhalten.

Entkommentieren Sie dann die SMTP-Konfiguration und geben Sie Ihre Kontodaten wie unten ein.

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

Das ist es. Speichern Sie die Änderungen und beenden Sie den Editor.

Erstellen Sie als Nächstes ein neues Discourse Docker-Image basierend auf der Konfiguration der app.yml-Vorlage.

sudo ./launcher bootstrap app

Wenn alles abgeschlossen ist, starten/initialisieren Sie den neuen Discourse-Container mit dem folgenden Befehl.

sudo ./launcher start app

Und der Discourse Docker-Container ist betriebsbereit – überprüfen Sie ihn mit dem Befehl „docker ps“.

docker ps -a

Überprüfen Sie den offenen Port des Hosts mit netstat und vergewissern Sie sich, dass der neue Dienst Docker-Proxy mit Port 2045 auf der Liste steht.

netstat -plntu

Die Discourse Forum-Software wurde unter dem Docker-Container auf dem Host CentOS 7 installiert.

Schritt 3 – Generieren Sie SSL Letsencrypt auf CentOS 7

Für dieses Tutorial führen wir das Discourse-Forum unter dem Nginx-Webserver aus und akzeptieren nur die HTTPS-Verbindung. Zu diesem Zweck benötigen wir neue SSL-Zertifikate für den Domainnamen und verwenden daher das kostenlose SSL-Zertifikat von Letsencrypt.

Installieren Sie das Befehlszeilentool Letsencrypt mit dem Befehl yum auf folgende Weise.

yum -y install letsencrypt

Fügen Sie nach der Installation neue HTTP- und HTTPS-Dienste zur Firewalld-Konfiguration hinzu.

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

Generieren Sie jetzt neue SSL-Zertifikate für das Discourse-Forum mit dem Befehl letsencrypt unten.

letsencrypt certonly

Sie sehen zwei Verifizierungen von Letsencrypt. Geben Sie die Zahl „1“ ein, um einen temporären Webserver für die Authentifizierung einzurichten.

Geben Sie dabei Ihre E-Mail-Adresse für die Verlängerungsbenachrichtigung ein und geben Sie „A“ ein, um den TOS (Terms Of Service) von letsencrypt zuzustimmen.

Geben Sie nun den Diskurs-Domänennamen „discourse.hakase-labs.co“ ein.

Und wenn der Vorgang abgeschlossen ist, erhalten Sie das Ergebnis wie unten.

Neues SSL-Zertifikat von letsencrypt wurde im Verzeichnis ‚/etc/letsencrypt/live‘ generiert.

Schritt 4 – Nginx als Reverse-Proxy für Discourse installieren und konfigurieren

In diesem Tutorial verwenden wir den Nginx-Webserver als Reverse-Proxy für Discourse, der unter dem Docker-Container ausgeführt wird. Der Nginx-Webserver wird unter HTTP- und HTTPS-Port ausgeführt, und alle Client-Anfragen werden von Nginx verarbeitet.

Vor der Installation des Nginx-Webservers müssen wir das EPEL-Repository auf dem System installieren.

yum -y install epel-release

Installieren Sie nun nginx aus dem EPEL-Repository mit dem folgenden yum-Befehl.

yum -y install nginx

Nachdem die Installation abgeschlossen ist, gehen Sie in das nginx-Konfigurationsverzeichnis ‚/etc/nginx‘.

cd /etc/nginx/

Und erstellen Sie eine neue zusätzliche SSL-Konfiguration 'ssl.conf' mit vim.

vim ssl.conf

Fügen Sie dort die folgende SSL-Konfiguration ein.

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;

Speichern Sie die Änderungen und beenden Sie den Editor.

Erstellen Sie als Nächstes eine neue virtuelle nginx-Hostdatei „discourse.conf“ für Discourse.

vim conf.d/discourse.conf

Fügen Sie dort die folgende Konfiguration ein.

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;
    }
}

Speichern und beenden.

Testen Sie nun die nginx-Konfiguration und stellen Sie sicher, dass kein Fehler vorliegt. Starten Sie dann den Nginx-Dienst neu.

nginx -t
systemctl restart nginx

Die Installation und Konfiguration von Nginx als Reverse-Proxy für den Discourse-Container ist abgeschlossen.

Schritt 5 – Discourse Web Installer

Öffnen Sie Ihren Webbrowser und besuchen Sie Ihre Diskurs-URL, meine ist:

http://discourse.hakase-labs.co

Und Sie werden auf die HTTPS-Verbindung umgeleitet.

Klicken Sie auf "Registrieren". ' Schaltfläche.

Jetzt müssen wir ein neues 'Administrator'-Konto erstellen.

Geben Sie Ihren Admin-Nutzernamen und Ihr Passwort ein und klicken Sie dann auf „Registrieren '.

Und Sie erhalten die Seite für die E-Mail-Bestätigung. Überprüfen Sie Ihren E-Mail-Posteingang und vergewissern Sie sich, dass Sie die E-Mail-Konfiguration aus dem Discourse-Forum wie unten beschrieben erhalten.

Klicken Sie auf den 'Link '.

Und Sie erhalten die 'Diskurs-Willkommens'-Seite.

Klicken Sie auf die Schaltfläche 'Klicken Sie hier, um Ihr Konto zu aktivieren '. Und jetzt sollten Sie auf die folgende Seite gelangen.

Klicken Sie auf „Vielleicht später ' Schaltfläche.

Das Discourse Forum wurde installiert und wir erhalten die unten gezeigte Standardhomepage.

Sie können das 'Admin Dashboard' aufrufen und Sie erhalten das Discourse Admin Dashboard.

Die Discourse Forum Software wurde mit Nginx als Reverse-Proxy auf dem CentOS 7-Server installiert.

Schritt 6 – Zusätzliche Diskurskonfiguration

Während der Installation von Discourse sagen einige Leute, dass sie die E-Mail-Bestätigung für die Aktivierung des Administratorbenutzers nicht erhalten.

Stellen Sie für dieses Problem sicher, dass Sie das richtige SMTP-Konto in der Konfigurations-app.yml haben. Oder Sie können das Administratorkonto manuell von Ihrem Server aus aktivieren.

Um Ihr Administratorkonto manuell zu aktivieren, gehen Sie in das Verzeichnis „/var/discourse“.

cd /var/discourse

Greifen Sie nun mit dem folgenden Befehl auf den Diskurscontainer zu.

./launcher enter app

Und aktivieren Sie den ersten Admin-Benutzer mit dem Rails-Befehl wie unten gezeigt.

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

Jetzt können Sie sich mit Ihrem Benutzernamen und Passwort beim Discourse-Forum anmelden.


Cent OS
  1. So installieren Sie Docker unter CentOS 8

  2. So installieren Sie WordPress mit Nginx unter CentOS 7

  3. So installieren Sie phpMyAdmin mit Nginx unter CentOS 7

  4. So installieren Sie SuiteCRM mit Nginx unter CentOS 7

  5. So installieren Sie phpMyAdmin mit Nginx unter CentOS 7 / RHEL 7

So installieren Sie Vanila Forum auf CentOS 8

So installieren Sie Nginx mit ngx_pagespeed unter CentOS

So installieren Sie Nginx mit PHP-FastCGI unter CentOS 6

So installieren Sie Magento mit Nginx unter CentOS 7

So installieren Sie Docker unter CentOS 7

So installieren Sie Laravel mit Nginx unter CentOS 8