วิธีการติดตั้ง 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 [email protected]
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 [email protected] --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 [email protected] --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 ของคุณเปิดใช้งานแล้ว



Leave a Comment

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

ภาวะเอกฐานทางเทคโนโลยี: อนาคตอันห่างไกลของอารยธรรมมนุษย์?

ภาวะเอกฐานทางเทคโนโลยี: อนาคตอันห่างไกลของอารยธรรมมนุษย์?

ในขณะที่วิทยาศาสตร์มีวิวัฒนาการไปอย่างรวดเร็ว โดยรับช่วงต่อความพยายามของเราอย่างมาก ความเสี่ยงในการทำให้ตัวเองตกอยู่ในภาวะภาวะเอกฐานที่อธิบายไม่ได้ก็เพิ่มขึ้นเช่นกัน อ่านว่าภาวะเอกฐานอาจมีความหมายสำหรับเราอย่างไร

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ผลกระทบของปัญญาประดิษฐ์ในการดูแลสุขภาพ 2021

ผลกระทบของปัญญาประดิษฐ์ในการดูแลสุขภาพ 2021

AI ในการดูแลสุขภาพได้ก้าวกระโดดอย่างมากจากทศวรรษที่ผ่านมา ดังนั้นอนาคตของ AI ในการดูแลสุขภาพจึงยังคงเติบโตทุกวัน