GNU/Linux >> Znalost Linux >  >> Cent OS

Jak nainstalovat fórum NodeBB na CentOS 7

NodeBB je software fóra založený na Node.js vytvořený pro moderní web. Je postaven na databázi MongoDB nebo Redis. Využívá webové zásuvky pro okamžité interakce a upozornění v reálném čase. NodeBB má mnoho moderních funkcí, jako je integrace sociálních sítí a streamování diskusí. Další funkce jsou povoleny pomocí zásuvných modulů třetích stran. NodeBB je open source projekt, který lze nalézt na Github. V této příručce vás provedeme krok za krokem instalačním procesem NodeBB v operačním systému CentOS 7.

Požadavky

NodeBB vyžaduje, aby byl nainstalován následující software:

  • Node.js verze 6 nebo větší
  • MongoDB verze 2.6 nebo vyšší nebo Redis verze 2.8.9 nebo větší
  • Verze Nginx 1.3.13 nebo větší
  • Git

Předpoklady

  • Server se systémem CentOS 7 x86_64 (64bitový) s alespoň 1 GB nebo RAM
  • Název domény s A /AAAA záznamy zřízen
  • Uživatel bez oprávnění root s právy sudo.

Počáteční kroky

Zkontrolujte verzi CentOS:

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

Nastavte časové pásmo:

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

Aktualizujte balíčky operačního systému (software):

sudo yum update -y

Chcete-li tento výukový program dokončit, nainstalujte si potřebné balíčky:

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

Pro jednoduchost deaktivujte SELinux a Firewall:

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

Krok 1:Instalace Node.js a npm

NodeBB je postaven na Node.js. Chystáme se nainstalovat doporučeno verze pro NodeBB, což je verze 8  v době psaní tohoto článku. V Linuxu máte několik možností instalace Node.js:Linuxové binární soubory (x86/x64), zdrojový kód nebo prostřednictvím Správce balíčků. Použijeme možnost Správa balíčků, díky které je instalace a aktualizace Node.js hračkou.

Stáhněte si a nainstalujte nejnovější vydání Long-Term Support (LTS) Node.js z úložiště Nodesource:

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

Chcete-li zkompilovat a nainstalovat nativní doplňky z npm, možná budete muset nainstalovat nástroje pro sestavení:

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

POZNÁMKA :npm je distribuován s Node.js – což znamená, že když si stáhnete Node.js, automaticky se vám do systému nainstaluje npm.

Zkontrolujte verze Node.js a npm:

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

Npm je samostatný projekt od Node.js a má tendenci se častěji aktualizovat. V důsledku toho, i když jste si právě stáhli Node.js (a tedy npm), budete pravděpodobně muset aktualizovat svůj npm. Naštěstí npm ví, jak se aktualizovat! Chcete-li aktualizovat své npm, zadejte toto do terminálu:

sudo npm install -g [email protected]

Tento příkaz aktualizuje npm na nejnovější stabilní verzi.

Krok 2:Instalace a konfigurace MongoDB

NodeBB potřebuje databázi k ukládání svých dat a podporuje MongoDB a Redis. V tomto tutoriálu jsme jako modul úložiště dat vybrali MongoDB. V několika následujících krocích tedy stáhneme a nainstalujeme databázi MongoDB z oficiálního úložiště MongoDB rpm:

Vytvořte /etc/yum.repos.d/mongodb-org-4.0.repo soubor, abyste mohli nainstalovat MongoDB přímo pomocí yum :

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

Naplňte soubor následujícím obsahem:

[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

Chcete-li nainstalovat nejnovější stabilní verzi balíčku MongoDB, zadejte následující příkaz:

sudo yum install -y mongodb-org

Zkontrolujte verzi MongoDB:

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

Spustit a povolit (nastavit spuštění při restartu ) Služba MongoDB:

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

Zkontrolujte stav databázového serveru MongoDB spuštěním:

sudo systemctl status mongod.service
# active (running)

Dále vytvořte databázi MongoDB a uživatele pro NodeBB.

Nejprve se připojte k serveru MongoDB.

mongo

Přepněte na vestavěného admin databáze.

> use admin

Vytvořte administrátora.

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

POZNÁMKA: Nahraďte zástupný symbol <Enter a secure password> s vaším vlastním vybraným heslem.

Přidejte novou databázi s názvem nodebb .

> use nodebb

Databáze se vytvoří a kontext se přepne na nodebb . Dále vytvořte nodebb uživatel s příslušnými oprávněními.

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

POZNÁMKA: Znovu nahraďte zástupný symbol <Enter a secure password> s vaším vlastním vybraným heslem.

Opusťte Mongo shell.

> quit()

Restartujte MongoDB a ověřte, že se může připojit dříve vytvořený administrátor.

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

Pokud vše proběhlo v pořádku, váš MongoDB by měl být nainstalován a připraven pro NodeBB. V dalším kroku se budeme zabývat instalací a konfigurací webového serveru.

Krok 3:Nainstalujte klienta Acme.sh a získejte certifikát Let's Encrypt (volitelné )

Zabezpečení vašeho fóra NodeBB pomocí HTTPS není nutné, ale je to dobrá praxe pro zabezpečení provozu na vašem webu. K získání SSL certifikátu od Let's Encrypt použijeme klienta Acme.sh. Acme.sh je čistě unixový shell software pro získávání SSL certifikátů od Let's Encrypt s nulovými závislostmi.

Stáhněte a nainstalujte Acme.sh:

sudo mkdir /etc/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail [email protected]
cd ~

Zkontrolujte verzi Acme.sh:

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

Získejte RSAECC/ECDSA certifikáty pro vaši doménu/název hostitele:

# 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

Po spuštění výše uvedených příkazů budou vaše certifikátyklíče bude v:

  • Pro RSA/etc/letsencrypt/forum.example.com adresář.
  • Pro ECC/ECDSA/etc/letsencrypt/forum.example.com_ecc adresář.

Krok 4:Instalace a konfigurace Nginx

NodeBB může dobře fungovat s mnoha webovými servery. V tomto tutoriálu jsme vybrali Nginx.

Nejprve si stáhněte a importujte klíč PGP úložiště Nginx:

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

Po importu klíče jej můžete bezpečně odebrat z disku:

rm nginx_signing.key

Vytvořte /etc/yum.repos.d/nginx_mainline.repo soubor, abyste mohli Nginx nainstalovat přímo pomocí yum :

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

Naplňte soubor následujícím obsahem:

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

Chcete-li nainstalovat nejnovější hlavní verzi balíčku Nginx, zadejte následující příkaz:

sudo yum install -y nginx

Po instalaci můžete verzi Nginx ověřit spuštěním:

nginx -v
# 1.15.3

Spustit a povolit (nastavit spuštění při restartu ) Služba Nginx:

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

Zkontrolujte stav webového serveru Nginx spuštěním:

sudo systemctl status nginx.service
# active (running)

NodeBB ve výchozím nastavení běží na portu 4567 . Chcete-li se vyhnout psaní http://example.com:4567 , nakonfigurujeme Nginx jako reverzní proxy pro aplikaci NodeBB. Každý požadavek na portu 80 nebo 443 (Pokud se používá SSL ) bude přesměrován na port 4567 .

Spusťte sudo vim /etc/nginx/conf.d/nodebb.conf a nakonfigurujte Nginx jako HTTPS reverzní 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";
}

}

Zkontrolujte konfiguraci Nginx:

sudo nginx -t

Nakonec, aby se změny projevily, musíme znovu načíst Nginx:

sudo systemctl reload nginx.service

Krok 5:Instalace a nastavení NodeBB

Vytvořte kořenový adresář dokumentu, kde by měl být NodeBB umístěn:

sudo mkdir -p /var/www/nodebb

Přejděte do kořenového adresáře dokumentu:

cd /var/www/nodebb

Změňte vlastnictví /var/www/nodebb do adresáře vašeho_uživatele.

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

POZNÁMKA:  Nahraďte your_user ve výše uvedeném příkazu svým uživatelem bez oprávnění root, kterého byste měli vytvořit jako předpoklad pro tento výukový program .

Naklonujte nejnovější úložiště NodeBB do kořenové složky dokumentu:

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

Spusťte instalační skript spuštěním aplikace s setup příznak:

./nodebb setup

Po dokončení nastavení NodeBB spusťte ./nodebb start pro ruční spuštění serveru NodeBB:

./nodebb start

Po spuštění tohoto příkazu byste měli mít přístup ke svému zbrusu novému fóru ve vašem webovém prohlížeči:

Krok 6:Spusťte NodeBB jako systémovou službu

Při spuštění pomocí ./nodebb start , NodeBB se znovu automaticky nespustí, když se systém restartuje. Abychom tomu zabránili, budeme muset nastavit NodeBB jako systémovou službu.

Pokud běží, zastavte NodeBB:

./nodebb stop

Vytvořte nový nodebb uživatel:

sudo useradd nodebb

Změňte vlastnictví /var/www/nodebb adresář do nodebb uživatel:

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

Vytvořte nodebb.service konfigurační soubor jednotky systemd. Tento soubor jednotky se postará o spuštění démona NodeBB. Spusťte sudo vim /etc/systemd/system/nodebb.service a přidejte obsah níže:

[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

POZNÁMKA: Nastavte uživatelské jméno a cesty k adresáři podle vámi zvolených jmen.

Povolte nodebb.service při restartu a okamžitě spusťte nodebb.service:

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

Zkontrolujte nodebb.service stav:

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

Gratulujeme! Úspěšně jste nainstalovali a nasadili diskusní platformu NodeBB na server CentOS 7.

Odkazy

  • https://nodebb.org/
  • https://docs.nodebb.org/

Cent OS
  1. Jak nainstalovat Vagrant na CentOS 7

  2. Jak nainstalovat ownCloud na CentOS 8

  3. Jak nainstalovat NodeBB na CentOS 7

  1. Jak nainstalovat Gitea na CentOS 8

  2. Jak nainstalovat Memcached na CentOS 8

  3. Jak nainstalovat Nginx na CentOS 7

  1. Jak nainstalovat Apache na CentOS 7

  2. Jak nainstalovat Tomcat 8.5 na CentOS 7

  3. Jak nainstalovat Jenkins na CentOS 7