So installieren Sie das NodeBBB Forum auf CentOS 7

NodeBBB ist eine auf Node.js basierende Forensoftware für das moderne Web, die entweder auf einer MongoDB- oder Redis-Datenbank basiert und Web-Sockets für sofortige Interaktionen und Echtzeit-Benachrichtigungen nutzt. NodeBBB ist ein Open-Source-Projekt, das auf Github zu finden ist, in dem wir Sie Schritt für Schritt durch den NodeBBB-Installationsprozess auf dem CentOS 7-Betriebssystem führen.

Anforderungen

NodeBBB erfordert die Installation der folgenden Software:

  • Node.js Version 6 oder höher
  • MongoDB Version 2.6 oder höher oder Redis Version 2.8.9 oder höher
  • Nginx Version 1.3.13 oder höher
  • Git

Voraussetzungen

  • Ein Server mit CentOS 7 x86_64 (64-Bit) System mit mindestens 1 GB oder RAM.
  • Domainname mit /AAAAAEinrichten von Datensätzen
  • Ein Nicht-Root-Benutzer mit sudo-Rechten.

Erste Schritte

Überprüfen Sie die CentOS-Version:

cat /etc/centos-release
# CentOS Linux release 7.5.1804 (Core)

Richten Sie die Zeitzone ein:

timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'

Aktualisieren Sie Ihre Betriebssystempakete (Software):

sudo yum update -y

Installieren Sie die notwendigen Pakete, um dieses Tutorial abzuschließen:

sudo yum install -y curl wget vim bash-completion git socat epel-release

Deaktivieren Sie aus Gründen der Einfachheit SELinux und Firewall:

sudo setenforce 0; sudo systemctl stop firewalld.service; sudo systemctl disable firewalld.service

Schritt 1: Installieren Sie Node.js und npm.

NodeBBB ist auf Node.js aufgebaut.Wir werden die Installation vonempfohlenVersion für NodeBBB, also Version 8.zum Zeitpunkt dieses Schreibens. Unter Linux haben Sie einige Installationsoptionen für Node.js: Linux Binaries (x86/x64), Quellcode oder über Paketmanager. Wir werden die Option Package Management verwenden, die die Installation und Aktualisierung von Node.js zum Kinderspiel macht.

Laden Sie die neueste LTS-Version (Long-Term Support) von Node.js aus dem Nodesource-Repository herunter und installieren Sie sie:

curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
sudo yum -y install nodejs

Um native Addons aus npm zu kompilieren und zu installieren, müssen Sie möglicherweise auch Build-Tools installieren:

sudo yum install -y gcc-c++ make
# or
# sudo yum groupinstall -y 'Development Tools'

HINWEISnpm wird mit Node.js verteilt – das bedeutet, dass Sie beim Herunterladen von Node.js automatisch npm auf Ihrem System installiert bekommen.

Überprüfen Sie die Node.js und npm.Versionen:

node -v && npm -v
# v8.12.0
# 6.4.1

Npm ist ein von Node.js getrenntes Projekt und wird tendenziell häufiger aktualisiert. Daher müssen Sie, auch wenn Sie gerade Node.js (und damit npm) heruntergeladen haben, wahrscheinlich Ihre npm aktualisieren. Zum Glück weiß npm, wie man sich selbst aktualisiert! Um Ihre npm zu aktualisieren, geben Sie diese in Ihr Terminal ein:

sudo npm install -g npm@latest

Dieser Befehl aktualisiert npm auf die neueste stabile Version.

Schritt 2: Installation und Konfiguration von MongoDB

NodeBBB benötigt eine Datenbank, um seine Daten zu speichern, und unterstützt MongoDB und Redis. In diesem Tutorial haben wir MongoDB als Datenspeicher-Engine gewählt. In den nächsten Schritten werden wir also die MongoDB-Datenbank aus dem offiziellen MongoDB rpm-Repository herunterladen und installieren:

Erstellen Sie eine/etc/yum.repos.d/mongodb-org-4.0.repoDatei, so dass Sie MongoDB direkt installieren können.yum:

sudo vim /etc/yum.repos.d/mongodb-org-4.0.repo

Füllen Sie die Datei mit dem folgenden Inhalt:

[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc

Um die neueste stabile Version des MongoDB-Pakets zu installieren, geben Sie den folgenden Befehl ein:

sudo yum install -y mongodb-org

Überprüfen Sie die MongoDB-Version:

mongo --version | head -n 1 && mongod --version | head -n 1
# MongoDB shell version v4.0.2
# db version v4.0.2

Starten und aktivieren (beim Neustart starten) Sie den MongoDB-Dienst:

sudo systemctl start mongod.service
sudo systemctl enable mongod.service

Überprüfen Sie den Status des MongoDB Datenbankservers, indem Sie ihn ausführen:

sudo systemctl status mongod.service
# active (running)

Als nächstes erstellen Sie die MongoDB-Datenbank und den Benutzer für NodeBBB.

Verbinden Sie sich zuerst mit dem MongoDB-Server.

mongo

Wechseln Sie zur integriertenadminDatenbank.

> use admin

Erstellen Sie einen administrativen Benutzer.

> db.createUser( { user: "admin", pwd: "<Enter a secure password>", roles: [ { role: "readWriteAnyDatabase", db: "admin" }, { role: "userAdminAnyDatabase", db: "admin" } ] } )

HINWEIS:Ersetzen Sie den Platzhalter<Enter a secure password>durch ein selbst gewähltes Passwort.

Fügen Sie eine neue Datenbank namens . hinzu.

> use nodebb

Die Datenbank wird erstellt und der Kontext gewechselt zu . Als nächstes erstellen Sie dennodebbBenutzer mit den entsprechenden Berechtigungen.

> db.createUser( { user: "nodebb", pwd: "<Enter a secure password>", roles: [ { role: "readWrite", db: "nodebb" }, { role: "clusterMonitor", db: "admin" } ] } )

HINWEIS:Ersetzen Sie den Platzhalter<Enter a secure password>wieder durch Ihr selbst gewähltes Passwort.

Verlasse die Mongo-Muschel.

> quit()

Starten Sie MongoDB neu und vergewissern Sie sich, dass der zuvor erstellte administrative Benutzer eine Verbindung herstellen kann.

sudo systemctl restart mongod.service
mongo -u admin -p your_password --authenticationDatabase=admin

Wenn alles gut gelaufen ist, sollte Ihre MongoDB installiert und für NodeBBB vorbereitet sein. Im nächsten Schritt werden wir uns mit der Installation und Konfiguration von Webservern befassen.

Schritt 3: Installieren Sie den Acme.sh-Client und erhalten Sie ein Let’s Encrypt-Zertifikat (optional).

Die Sicherung Ihres NodeBBB-Forums mit HTTPS ist nicht notwendig, aber es ist eine gute Vorgehensweise, um den Traffic Ihrer Website zu sichern. Um das SSL-Zertifikat von Let’s Encrypt zu erhalten, werden wir den Acme.sh-Client verwenden. Acme.sh ist eine reine Unix-Shell-Software zum Erhalten von SSL-Zertifikaten von Let’s Encrypt ohne Abhängigkeiten.

Laden Sie Acme.sh herunter und installieren Sie es:

sudo mkdir /etc/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail your_email@example.com
cd ~

Überprüfen Sie die Version von Acme.sh:

/etc/letsencrypt/acme.sh --version
# v2.8.0

Besorgen Sie sich RSA- und ECC/ECDSA-Zertifikate für Ihre Domain/Hostname:

# RSA 2048
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d forum.example.com --ocsp-must-staple --keylength 2048
# ECDSA
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d forum.example.com --ocsp-must-staple --keylength ec-256

Nachdem Sie die obigen Befehle ausgeführt haben, wird IhrZertifikateundSchlüsselwird drin sein:

  • Für RSA:/etc/letsencrypt/forum.example.comVerzeichnis.
  • Für ECC/ECDSA:/etc/letsencrypt/forum.example.com_eccVerzeichnis.

Schritt 4: Installation und Konfiguration von Nginx

NodeBBB kann mit vielen Webservern gut funktionieren. In diesem Tutorial haben wir Nginx ausgewählt.

Laden Sie zuerst den PGP-Schlüssel des Nginx-Repository herunter und importieren Sie ihn:

wget https://nginx.org/keys/nginx_signing.key
sudo rpm --import nginx_signing.key

Nach dem Importieren des Schlüssels können Sie ihn sicher von der Festplatte entfernen:

rm nginx_signing.key

Erstellen Sie eine/etc/yum.repos.d/nginx_mainline.repoDatei, so dass Sie Nginx direkt mit Hilfe vonyum:

sudo vim /etc/yum.repos.d/nginx_mainline.repo

Füllen Sie die Datei mit dem folgenden Inhalt:

[nginx]
name=nginx repo
baseurl=https://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=1
enabled=1

Um schließlich die neueste Mainline-Version des Nginx-Pakets zu installieren, geben Sie den folgenden Befehl ein:

sudo yum install -y nginx

Nach der Installation können Sie die Nginx-Version durch Ausführen überprüfen:

nginx -v
# 1.15.3

Starten und aktivieren (beim Neustart starten) Sie den Nginx-Dienst:

sudo systemctl start nginx.service
sudo systemctl enable nginx.service

Überprüfen Sie den Status des Nginx-Webservers, indem Sie ihn ausführen:

sudo systemctl status nginx.service
# active (running)

NodeBBB läuft standardmäßig auf dem Port4567. Um das Tippen zu vermeidenhttp://example.com:4567werden wir Nginx als Reverse-Proxy für die NodeBBB-Anwendung konfigurieren. Jede Anfrage am Hafen80oder443(wenn SSL verwendet wird) wird an den Hafen weitergeleitet.4567.

Laufensudo vim /etc/nginx/conf.d/nodebb.confund konfigurieren Sie Nginx als HTTPS Reverse Proxy.

server {
  listen [::]:443 ssl http2;
  listen 443 ssl http2;
  listen [::]:80;
  listen 80;
server_name forum.example.com;

client_max_body_size 50M;

# RSA
ssl_certificate /etc/letsencrypt/forum.example.com/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/forum.example.com/forum.example.com.key;
# ECDSA
ssl_certificate /etc/letsencrypt/forum.example.com_ecc/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/forum.example.com_ecc/forum.example.com.key;

location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4567;
proxy_redirect off;
# Socket.IO Support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}

}

Überprüfen Sie die Nginx-Konfiguration:

sudo nginx -t

Damit die Änderungen wirksam werden, müssen wir schließlich Nginx neu laden:

sudo systemctl reload nginx.service

Schritt 5: Installation und Einrichtung von NodeBBB

Erstellen Sie ein Dokumenten-Stammverzeichnis, in dem sich NodeBBB befinden soll:

sudo mkdir -p /var/www/nodebb

Navigieren Sie zum Stammverzeichnis des Dokuments:

cd /var/www/nodebb

Wechseln Sie den Eigentümer des/var/www/nodebbVerzeichnis zu Ihrem_Benutzer.

sudo chown -R [your_user]:[your_user] /var/www/nodebb

HINWEIS:Ersetzen Sie your_user im obigen Befehl durch Ihren Nicht-Root-Benutzer, den Sie als Voraussetzung für dieses Tutorial angelegt haben sollten..

Klonen Sie das neueste NodeBBB-Repository in den Dokumentenstammordner:

git clone -b v1.10.x https://github.com/NodeBB/NodeBB.git .

Starten Sie das Setup-Skript, indem Sie die App mit der OptionsetupFlagge:

./nodebb setup

Nachdem das NodeBBB-Setup abgeschlossen ist, starten Sie Ihren NodeBBB-Server./nodebb startmanuell:

./nodebb start

Nachdem Sie diesen Befehl ausgeführt haben, sollten Sie in Ihrem Webbrowser auf Ihr brandneues Forum zugreifen können:

NodeBB in Browser

Schritt 6: NodeBBB als Systemdienst ausführen

Wenn NodeBBB./nodebb startüber gestartet wird, wird es nicht automatisch beim Neustart des Systems neu gestartet. Um das zu vermeiden, müssen wir NodeBBB als Systemdienst einrichten.

Wenn es läuft, stoppen Sie NodeBBB:

./nodebb stop

Legen Sie einen neuennodebbBenutzer an:

sudo useradd nodebb

Ändern Sie den Besitzer des/var/www/nodebbVerzeichnisses auf Benutzer:

sudo chown -R nodebb:nodebb /var/www/nodebb

Erstellen Sie eine Konfigurationsdatei für die Systemeinheitnodebb.service. Diese Unit-Datei übernimmt den Start von NodeBBB deamon. Führen Sie aus undsudo vim /etc/systemd/system/nodebb.servicefügen Sie den folgenden Inhalt hinzu:

[Unit]
Description=NodeBB
Documentation=https://docs.nodebb.org
After=system.slice multi-user.target mongod.service

[Service]
Type=forking
User=nodebb

StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=nodebb

Environment=NODE_ENV=production
WorkingDirectory=/var/www/nodebb
PIDFile=/var/www/nodebb/pidfile
ExecStart=/usr/bin/env node loader.js
Restart=always

[Install]
WantedBy=multi-user.target

HINWEIS:Legen Sie den Benutzernamen und die Verzeichnispfade entsprechend den von Ihnen gewählten Namen fest.

Beimnodebb.serviceNeustart aktivieren und sofort startennodebb.service:

sudo systemctl enable nodebb.service
sudo systemctl start nodebb.service

Überprüfen Sie dennodebb.serviceStatus:

sudo systemctl status nodebb.service
sudo systemctl is-enabled nodebb.service

Herzlichen Glückwunsch! Sie haben die NodeBBB-Diskussionsplattform auf dem CentOS 7-Server erfolgreich installiert und eingesetzt.

Links

Das könnte Dich auch interessieren …