GNU/Linux >> Belajar Linux >  >> Cent OS

Cara Memasang Forum NodeBB di CentOS 7

NodeBB adalah software forum berbasis Node.js yang dibuat untuk web modern. Ini dibuat di database MongoDB atau Redis. Ini menggunakan soket web untuk interaksi instan dan pemberitahuan waktu nyata. NodeBB memiliki banyak fitur modern di luar kotak seperti integrasi jejaring sosial dan diskusi streaming. Fungsionalitas tambahan diaktifkan melalui penggunaan plugin pihak ketiga. NodeBB adalah proyek open source yang dapat ditemukan di Github. Dalam panduan ini, kami akan memandu Anda melalui proses instalasi NodeBB langkah demi langkah pada sistem operasi CentOS 7.

Persyaratan

NodeBB membutuhkan perangkat lunak berikut untuk diinstal:

  • Versi Node.js 6 atau lebih besar
  • Versi MongoDB 2.6 atau lebih tinggi atau versi Redis 2.8.9 atau lebih besar
  • Versi Nginx 1.3.13 atau lebih besar
  • Git

Prasyarat

  • Server yang menjalankan sistem CentOS 7 x86_64 (64-bit) dengan setidaknya 1 GB atau RAM
  • Nama domain dengan A /AAAA pengaturan catatan
  • Pengguna non-root dengan hak istimewa sudo.

Langkah awal

Periksa versi CentOS:

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

Siapkan zona waktu:

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

Perbarui paket sistem operasi Anda (perangkat lunak):

sudo yum update -y

Instal paket yang diperlukan untuk menyelesaikan tutorial ini:

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

Demi kesederhanaan, nonaktifkan SELinux dan Firewall:

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

Langkah 1:Instal Node.js dan npm

NodeBB dibuat di atas Node.js. Kami akan memasang disarankan versi untuk NodeBB yaitu versi 8  pada saat penulisan ini. Di Linux Anda memiliki beberapa opsi instalasi Node.js:Linux Binaries (x86/x64), Source Code atau melalui Package Managers. Kami akan menggunakan opsi Manajemen Paket yang membuat pemasangan dan pembaruan Node.js menjadi mudah.

Download dan instal rilis Long-Term Support (LTS) terbaru dari Node.js dari repositori Nodesource:

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

Untuk mengompilasi dan menginstal add-on asli dari npm, Anda mungkin juga perlu menginstal alat bantu:

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

CATATAN :npm didistribusikan dengan Node.js - yang berarti bahwa saat Anda mengunduh Node.js, Anda secara otomatis menginstal npm di sistem Anda.

Periksa versi Node.js dan npm :

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

Npm adalah proyek terpisah dari Node.js, dan cenderung lebih sering diperbarui. Akibatnya, meskipun Anda baru saja mengunduh Node.js (dan karenanya npm), Anda mungkin perlu memperbarui npm Anda. Untungnya, npm tahu cara memperbarui dirinya sendiri! Untuk memperbarui npm Anda, ketik ini ke terminal Anda:

sudo npm install -g [email protected]

Perintah ini akan memperbarui npm ke versi stabil terbaru.

Langkah 2:Instal dan konfigurasikan MongoDB

NodeBB membutuhkan database untuk menyimpan datanya, dan mendukung MongoDB dan Redis. Dalam tutorial ini, kami memilih MongoDB sebagai mesin penyimpanan data. Jadi, dalam beberapa langkah berikutnya, kita akan mengunduh dan menginstal database MongoDB dari repositori rpm MongoDB resmi:

Buat /etc/yum.repos.d/mongodb-org-4.0.repo file, sehingga Anda dapat menginstal MongoDB secara langsung menggunakan yum :

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

Isi file dengan konten berikut:

[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

Untuk menginstal paket MongoDB versi stabil terbaru, jalankan perintah berikut:

sudo yum install -y mongodb-org

Periksa versi MongoDB:

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

Mulai dan aktifkan (setel untuk memulai saat reboot ) Layanan MongoDB:

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

Periksa status Server Database MongoDB dengan menjalankan:

sudo systemctl status mongod.service
# active (running)

Selanjutnya, buat database MongoDB dan pengguna untuk NodeBB.

Hubungkan ke server MongoDB terlebih dahulu.

mongo

Beralih ke admin bawaan basis data.

> use admin

Buat pengguna administratif.

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

CATATAN: Ganti placeholder <Enter a secure password> dengan kata sandi pilihan Anda sendiri.

Tambahkan database baru bernama nodebb .

> use nodebb

Basis data akan dibuat dan konteksnya dialihkan ke nodebb . Selanjutnya buat nodebb pengguna dengan hak istimewa yang sesuai.

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

CATATAN: Sekali lagi, ganti placeholder <Enter a secure password> dengan kata sandi pilihan Anda sendiri.

Keluar dari cangkang Mongo.

> quit()

Mulai ulang MongoDB dan verifikasi bahwa pengguna administratif yang dibuat sebelumnya dapat terhubung.

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

Jika semuanya berjalan dengan baik, MongoDB Anda harus diinstal dan disiapkan untuk NodeBB. Pada langkah berikutnya, kita akan berurusan dengan penginstalan dan konfigurasi server web.

Langkah 3:Instal klien Acme.sh dan dapatkan sertifikat Let's Encrypt (opsional )

Mengamankan forum NodeBB Anda dengan HTTPS tidak diperlukan, tetapi ini adalah praktik yang baik untuk mengamankan lalu lintas situs Anda. Untuk mendapatkan sertifikat SSL dari Let's Encrypt kami akan menggunakan klien Acme.sh. Acme.sh adalah perangkat lunak shell unix murni untuk mendapatkan sertifikat SSL dari Let's Encrypt tanpa ketergantungan.

Unduh dan instal 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 ~

Periksa versi Acme.sh :

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

Dapatkan RSA dan ECC/ECDSA sertifikat untuk domain/hostname Anda:

# 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

Setelah menjalankan perintah di atas, sertifikat your Anda dan kunci akan di:

  • Untuk RSA/etc/letsencrypt/forum.example.com direktori.
  • Untuk ECC/ECDSA/etc/letsencrypt/forum.example.com_ecc direktori.

Langkah 4:Instal dan konfigurasikan Nginx

NodeBB dapat bekerja dengan baik dengan banyak server web. Dalam tutorial ini, kami memilih Nginx.

Unduh dan impor kunci PGP repositori Nginx terlebih dahulu:

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

Setelah mengimpor kunci, Anda dapat menghapusnya dengan aman dari disk:

rm nginx_signing.key

Buat /etc/yum.repos.d/nginx_mainline.repo file, sehingga Anda dapat menginstal Nginx secara langsung menggunakan yum :

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

Isi file dengan konten berikut:

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

Terakhir, untuk menginstal versi utama terbaru dari paket Nginx, jalankan perintah berikut:

sudo yum install -y nginx

Setelah penginstalan, Anda dapat memverifikasi versi Nginx dengan menjalankan:

nginx -v
# 1.15.3

Mulai dan aktifkan (setel untuk memulai saat reboot ) Layanan Nginx:

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

Periksa status server web Nginx dengan menjalankan:

sudo systemctl status nginx.service
# active (running)

NodeBB secara default berjalan pada port 4567 . Untuk menghindari mengetik http://example.com:4567 , kita akan mengkonfigurasi Nginx sebagai reverse proxy untuk aplikasi NodeBB. Setiap permintaan pada port 80 atau 443 (jika SSL digunakan ) akan diteruskan ke port 4567 .

Jalankan sudo vim /etc/nginx/conf.d/nodebb.conf dan konfigurasikan Nginx sebagai proxy terbalik HTTPS.

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

}

Periksa konfigurasi Nginx:

sudo nginx -t

Terakhir, agar perubahan diterapkan, kita perlu memuat ulang Nginx:

sudo systemctl reload nginx.service

Langkah 5:Instal dan atur NodeBB

Buat direktori root dokumen tempat NodeBB seharusnya berada:

sudo mkdir -p /var/www/nodebb

Arahkan ke direktori root dokumen:

cd /var/www/nodebb

Ubah kepemilikan /var/www/nodebb direktori ke pengguna_Anda.

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

CATATAN:  Ganti your_user pada perintah di atas dengan pengguna non-root yang seharusnya Anda buat sebagai prasyarat untuk tutorial ini .

Kloning repositori NodeBB terbaru ke dalam folder root dokumen:

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

Mulai skrip penyiapan dengan menjalankan aplikasi dengan setup bendera:

./nodebb setup

Setelah penyiapan NodeBB selesai, jalankan ./nodebb start untuk memulai server NodeBB Anda secara manual:

./nodebb start

Setelah menjalankan perintah ini, Anda seharusnya dapat mengakses forum baru Anda di browser web Anda:

Langkah 6:Jalankan NodeBB sebagai Layanan Sistem

Saat dimulai melalui ./nodebb start , NodeBB tidak akan secara otomatis memulai kembali ketika sistem di-boot ulang. Untuk menghindarinya, kita perlu mengatur NodeBB sebagai layanan sistem.

Jika sedang berjalan, hentikan NodeBB:

./nodebb stop

Buat nodebb baru pengguna:

sudo useradd nodebb

Ubah kepemilikan /var/www/nodebb direktori ke nodebb pengguna:

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

Buat nodebb.service file konfigurasi unit systemd. File unit ini akan menangani startup deamon NodeBB. Jalankan sudo vim /etc/systemd/system/nodebb.service dan tambahkan konten di bawah ini:

[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

CATATAN: Tetapkan nama pengguna dan jalur direktori sesuai dengan nama yang Anda pilih.

Aktifkan nodebb.service saat reboot dan segera mulai nodebb.service:

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

Periksa nodebb.service status:

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

Selamat! Anda telah berhasil menginstal dan menerapkan platform diskusi NodeBB di server CentOS 7.

Tautan

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

Cent OS
  1. Cara Menginstal Vagrant di CentOS 7

  2. Cara Menginstal ownCloud di CentOS 8

  3. Cara Instal NodeBB di CentOS 7

  1. Cara Menginstal Gitea di CentOS 8

  2. Cara Menginstal Memcached di CentOS 8

  3. Cara Menginstal Nginx di CentOS 7

  1. Cara Menginstal Apache di CentOS 7

  2. Cara Menginstal Tomcat 8.5 di CentOS 7

  3. Cara Menginstal Jenkins di CentOS 7