วิธีการติดตั้ง NodeBB Forum บน Ubuntu 18.04 LTS

NodeBBเป็นฟอรัมที่ใช้ Node.js มันใช้ซ็อกเก็ตเว็บสำหรับการโต้ตอบแบบทันทีและการแจ้งเตือนแบบเรียลไทม์ รหัสที่มา NodeBB เป็นเจ้าภาพสาธารณะบนGithub คำแนะนำนี้จะนำคุณสู่กระบวนการติดตั้ง NodeBB บนอินสแตนซ์ Ubuntu 18.04 LTS Vultr ใหม่โดยใช้ Node.js, MongoDB เป็นฐานข้อมูล, Nginx เป็น reverse proxy และ Acme.sh สำหรับใบรับรอง SSL

ความต้องการ

NodeBB ต้องติดตั้งซอฟต์แวร์ต่อไปนี้:

  • Git
  • Node.js เวอร์ชั่น 6.9.0 หรือใหม่กว่า
  • MongoDB เวอร์ชัน 2.6 ขึ้นไป
  • Nginx
  • RAM ขั้นต่ำ 1024MB
  • ชื่อโดเมนที่มีA/ AAAAบันทึกการตั้งค่า

ก่อนที่จะเริ่ม

ตรวจสอบเวอร์ชั่นของ Ubuntu

lsb_release -ds
# Ubuntu 18.04 LTS

สร้างnon-rootบัญชีผู้ใช้ใหม่ด้วยsudoการเข้าถึงและเปลี่ยนเป็นบัญชี

adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
su - johndoe

หมายเหตุ : แทนที่johndoeด้วยชื่อผู้ใช้ของคุณ

ตั้งค่าเขตเวลา

sudo dpkg-reconfigure tzdata

ตรวจสอบให้แน่ใจว่าระบบของคุณทันสมัย

sudo apt update && sudo apt upgrade -y

ติดตั้งแพ็คเกจที่จำเป็น

sudo apt install -y git build-essential apt-transport-https

ติดตั้ง Node.js

NodeBB ขับเคลื่อนโดย Node.js ดังนั้นจึงจำเป็นต้องติดตั้ง แนะนำให้ทำการติดตั้งรุ่น LTS ปัจจุบันของ Node.js

ติดตั้ง Node.js จากที่เก็บ NodeSource

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt install -y nodejs

ตรวจสอบการติดตั้ง Node.js และ npm

node -v && npm -v
# v10.15.0
# 5.6.0

ติดตั้งและกำหนดค่า MongoDB

MongoDB เป็นฐานข้อมูลเริ่มต้นสำหรับ NodeBB

ติดตั้ง MongoDB

sudo apt install -y mongodb

ตรวจสอบเวอร์ชั่น

mongo --version | head -n 1 && mongod --version | head -n 1
# MongoDB shell version v3.6.3
# db version v3.6.3

สร้างฐานข้อมูล MongoDB และผู้ใช้สำหรับ NodeBB

เชื่อมต่อกับเซิร์ฟเวอร์ MongoDB ก่อน

mongo

สลับไปยังadminฐานข้อมูลในตัว

> use admin

สร้างผู้ใช้ที่เป็นผู้ดูแลระบบ

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

หมายเหตุ: แทนที่ตัวยึดตำแหน่ง<Enter a secure password>ด้วยรหัสผ่านที่คุณเลือก

nodebbเพิ่มฐานข้อมูลใหม่ที่เรียกว่า

> use nodebb

nodebbฐานข้อมูลจะถูกสร้างขึ้นและบริบทเปลี่ยนไป จากนั้นสร้างnodebbผู้ใช้ด้วยสิทธิ์ที่เหมาะสม

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

หมายเหตุ: อีกครั้งแทนที่ตัวยึดตำแหน่ง<Enter a secure password>ด้วยรหัสผ่านที่คุณเลือก

ออกจากเปลือก Mongo

> quit()

รีสตาร์ท MongoDB และตรวจสอบว่าผู้ใช้ที่เป็นผู้ดูแลระบบที่สร้างขึ้นก่อนหน้านี้สามารถเชื่อมต่อได้

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

ติดตั้งและกำหนดค่า Nginx

ติดตั้ง Nginx เวอร์ชันล่าสุดจากที่เก็บอย่างเป็นทางการของ Nginx

wget https://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key
rm nginx_signing.key
sudo -s
printf "deb https://nginx.org/packages/mainline/ubuntu/ $(lsb_release -sc) nginx\ndeb-src https://nginx.org/packages/mainline/ubuntu/ $(lsb_release -sc) nginx\n" >> /etc/apt/sources.list.d/nginx_mainline.list
exit
sudo apt update
sudo apt install -y nginx

ตรวจสอบเวอร์ชั่น

sudo nginx -v
# nginx version: nginx/1.15.0

เปิดใช้งานและเริ่ม Nginx

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

NodeBB 4567โดยค่าเริ่มต้นทำงานบนพอร์ต เพื่อหลีกเลี่ยงการพิมพ์http://example.com:4567เราจะกำหนดค่า Nginx เป็น reverse proxy สำหรับแอปพลิเคชัน NodeBB คำขอในพอร์ตทุก80หรือ443(ถ้าจะใช้ SSL) 4567จะถูกส่งต่อไปยังท่าเรือ

รันsudo vim /etc/nginx/conf.d/nodebb.confและเติมด้วยการกำหนดค่าพร็อกซีย้อนกลับพื้นฐานด้านล่าง

server {

  listen [::]:80;
  listen 80;

  server_name forum.example.com;

  root /usr/share/nginx/html;

  client_max_body_size 50M;

  location /.well-known/acme-challenge/ {
    allow all;
  }

  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_hide_header X-Powered-By;
    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";
  }

}

หมายเหตุ: อัปเดตserver_nameคำสั่งด้วยโดเมน / ชื่อโฮสต์ของคุณ

ตรวจสอบการกำหนดค่า

sudo nginx -t

โหลดซ้ำ Nginx

sudo systemctl reload nginx.service

ติดตั้งไคลเอนต์ Acme.sh และรับใบรับรอง Let's Encrypt (ตัวเลือก)

การรักษาความปลอดภัยฟอรัมของคุณด้วย HTTPS นั้นไม่จำเป็น แต่จะช่วยรักษาความปลอดภัยของการเข้าชมเว็บไซต์ของคุณ Acme.sh เป็นซอฟต์แวร์เชลล์ unix บริสุทธิ์สำหรับการรับใบรับรอง SSL จาก Let's Encrypt โดยไม่ต้องพึ่งพาศูนย์

ดาวน์โหลดและติดตั้ง 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 your_email@example.com
cd ~
source ~/.bashrc

ตรวจสอบเวอร์ชั่น

acme.sh --version
# v2.7.9

ได้รับอาร์เอสและ ECDSA forum.example.comใบรับรองสำหรับ

# RSA 2048
sudo /etc/letsencrypt/acme.sh --issue --home /etc/letsencrypt -d forum.example.com --webroot /usr/share/nginx/html --reloadcmd "sudo systemctl reload nginx.service" --accountemail your_email@example.com --ocsp-must-staple --keylength 2048
# ECDSA/ECC P-256
sudo /etc/letsencrypt/acme.sh --issue --home /etc/letsencrypt -d forum.example.com --webroot /usr/share/nginx/html --reloadcmd "sudo systemctl reload nginx.service" --accountemail your_email@example.com --ocsp-must-staple --keylength ec-256

หลังจากเรียกใช้คำสั่งข้างต้นใบรับรองและคีย์ของคุณจะอยู่ในไดเรกทอรีต่อไปนี้:

  • อาร์เอส: /etc/letsencrypt/forum.example.com
  • ECC / ECDSA: /etc/letsencrypt/forum.example.com_ecc

หลังจากได้รับใบรับรองจาก Let's Encrypt เราต้องกำหนดค่า Nginx เพื่อใช้งาน

รันsudo vim /etc/nginx/conf.d/nodebb.confอีกครั้งและกำหนดค่า Nginx เป็น HTTPS reverse proxy

server {

  listen [::]:443 ssl http2;
  listen 443 ssl http2;
  listen [::]:80;
  listen 80;

  server_name forum.example.com;

  root /usr/share/nginx/html;

  client_max_body_size 50M;

  location /.well-known/acme-challenge/ {
    allow all;
  }

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

}

ตรวจสอบการกำหนดค่า

sudo nginx -t

โหลดซ้ำ Nginx

sudo systemctl reload nginx.service

ติดตั้ง NodeBB

สร้างไดเรกทอรีรากของเอกสาร

sudo mkdir -p /var/www/nodebb

เปลี่ยนความเป็นเจ้าของของไดเรกทอรีไป/var/www/nodebbjohndoe

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

นำทางไปยังโฟลเดอร์รูทเอกสาร

cd /var/www/nodebb

โคลน NodeBB เวอร์ชันล่าสุดลงในโฟลเดอร์ root ของเอกสาร

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

เรียกใช้คำสั่งการตั้งค่า NodeBB และตอบคำถามแต่ละข้อเมื่อได้รับแจ้ง

./nodebb setup

หลังจากติดตั้ง NodeBB เสร็จแล้วให้เรียกใช้./nodebb startเพื่อเริ่มเซิร์ฟเวอร์ NodeBB ของคุณด้วยตนเอง

./nodebb start

หลังจากคำสั่งนี้คุณจะสามารถเข้าถึงฟอรัมในเว็บเบราว์เซอร์ของคุณ

เรียกใช้ NodeBB เป็นบริการระบบ

เมื่อเริ่มต้นผ่าน./nodebb startNodeBB จะไม่เริ่มต้นโดยอัตโนมัติอีกครั้งเมื่อระบบรีบูต เพื่อหลีกเลี่ยงปัญหานี้เราจะต้องตั้งค่า NodeBB เป็นบริการระบบ

หากทำงานให้หยุด NodeBB

./nodebb stop

สร้างnodebbผู้ใช้ที่ไม่มีสิทธิ์ใหม่

sudo adduser nodebb

เปลี่ยนความเป็นเจ้าของของ/var/www/nodebbไดเรกทอรีเป็นnodebbผู้ใช้

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

สร้างไฟล์กำหนดค่าnodebb.servicesystemd หน่วย ไฟล์หน่วยนี้จะจัดการการเริ่มต้นของ NodeBB deamon เรียกใช้sudo vim /etc/systemd/system/nodebb.serviceและเติมไฟล์ด้วยเนื้อหาต่อไปนี้:

[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

หมายเหตุ: ตั้งค่าชื่อผู้ใช้และเส้นทางไดเรกทอรีตามชื่อที่คุณเลือก

เปิดใช้งานในการบูตเครื่องและทันทีที่เริ่มต้นnodebb.servicenodebb.service

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

ตรวจสอบnodebb.serviceสถานะ

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

แค่นั้นแหละ. อินสแตนซ์ NodeBB ของคุณเปิดใช้งานแล้ว

ฝากความเห็น

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

เรียนรู้วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7; ระบบการจัดการเนื้อหา Headless ที่มีความยืดหยุ่นสูงและปลอดภัย

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

เรียนรู้วิธีการตั้งค่า Nginx บน Ubuntu สำหรับการสตรีมวิดีโอสด HLS ด้วยคำแนะนำที่ชัดเจนและเป็นประโยชน์

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

เรียนรู้การใช้ Percona XtraBackup สำหรับการสำรองข้อมูลด้วยวิธีที่เป็นระบบและง่ายดายบน WordPress ออนไลน์ของคุณ

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true