NodeBB là phần mềm diễn đàn dựa trênNode.js được xây dựng cho web hiện đại. Nó được xây dựng trên cơ sở dữ liệu MongoDB hoặc Redis. Nó sử dụng web socket để tương tác tức thời và thông báo theo thời gian thực. NodeBB có nhiều tính năng hiện đại ngay khi cài đặt như tích hợp mạng xã hội và thảo luận phát trực tuyến.Chức năng bổ sung được kích hoạt thông qua việc sử dụng các plugin của bên thứ ba.NodeBB là một dự án nguồn mở có thể được tìm thấy trên Github.Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn từng bước quy trình cài đặt NodeBB trên hệ điều hành CentOS 7.
Thiết lập múi giờ:
Cập nhật các gói hệ điều hành (phần mềm):
Cài đặt các gói cần thiết để hoàn tất hướng dẫn này:
Để đơn giản, hãy tắt SELinux và Tường lửa:
Tải xuống và cài đặt bản phát hành Hỗ trợ dài hạn (LTS) mới nhất củaNode.js từ kho lưu trữ Nodesource:
Để biên dịch và cài đặt các tiện ích bổ sung gốc từ npm, bạn cũng có thể cần cài đặt các công cụ xây dựng:
LƯU Ý: npm được phân phối cùng với Node.js - điều này có nghĩa là khi bạn tải xuống Node.js, npm sẽ tự động được cài đặt trên hệ thống của bạn.
Kiểm tra phiên bản Node.js vànpm:
Npm là một dự án riêng biệt với Node.js và có xu hướng cập nhật thường xuyên hơn. Do đó, ngay cả khi bạn vừa tải xuống Node.js (và do đó là npm), bạn có thể sẽ cần cập nhật npm của mình. May mắn thay, npm biết cách tự cập nhật! Để cập nhật npm của bạn, hãy nhập lệnh này vào thiết bị đầu cuối của bạn:
Lệnh này sẽ cập nhật npm lên phiên bản ổn định mới nhất.
Tạo tệp /etc/yum.repos.d/mongodb-org-4.0.repo để bạn có thể cài đặt MongoDB trực tiếp bằng yum:
Điền nội dung sau vào tệp:
Để cài đặt phiên bản ổn định mới nhất của gói MongoDB, hãy đưa ra lệnh sau:
Kiểm tra phiên bản MongoDB:
Startandenable(đặt để bắt đầu khi khởi động lại)Dịch vụ MongoDB:
Kiểm tra trạng thái Máy chủ cơ sở dữ liệu MongoDB bằng cách chạy:
Tiếp theo, tạo cơ sở dữ liệu MongoDB và người dùng cho NodeBB.
Kết nối với máy chủ MongoDB trước.
Chuyển sang cơ sở dữ liệu
Tạo người dùng quản trị.
LƯU Ý: Thay thế chỗ giữ chỗ
Thêm cơ sở dữ liệu mới có tên
Cơ sở dữ liệu sẽ được tạo và ngữ cảnh sẽ được chuyển thành
LƯU Ý: Một lần nữa, hãy thay thế chỗ giữ chỗ
Thoát khỏi Mongo shell.
Khởi động lại MongoDB và xác minh rằng người dùng quản trị đã tạo trước đó có thể kết nối.
Nếu mọi việc diễn ra tốt đẹp, MongoDB của bạn sẽ được cài đặt và chuẩn bị cho NodeBB. Ở bước tiếp theo, chúng ta sẽ xử lý cài đặt và cấu hình máy chủ web.
Tải xuống và cài đặtAcme.sh:
Kiểm tra phiên bản Acme.sh:
Lấy chứng chỉ RSA và ECC/ECDSA cho tên miền/tên máy chủ của bạn:
Sau khi chạy các lệnh trên, chứng chỉ và khóa của bạn sẽ nằm trong:
Đầu tiên, hãy tải xuống và nhập khóa PGP của kho lưu trữ Nginx:
Sau khi nhập khóa, bạn có thể xóa khóa đó khỏi đĩa một cách an toàn:
Tạo tệp /etc/yum.repos.d/nginx_mainline.repo để bạn có thể cài đặt Nginx trực tiếp bằng yum:
Điền nội dung sau vào tệp:
Cuối cùng, đểcài đặt phiên bản chính thức mới nhất của gói Nginx, hãy phát hành lệnh sau lệnh:
Sau khi cài đặt, bạn có thể xác minh phiên bản Nginx bằng cách chạy:
Startandenable (đặt để bắt đầu khi khởi động lại) Dịch vụ Nginx:
Kiểm tra trạng thái máy chủ web Nginx bằng cách chạy:
Theo mặc định, NodeBB chạy trên cổng
Chạy
Kiểm tra cấu hình Nginx:
Cuối cùng, để các thay đổi có hiệu lực, chúng ta cần tải lại Nginx:
Điều hướng đến thư mục gốc của tài liệu:
Thay đổi quyền sở hữu của thư mục
LƯU Ý:Thay thế your_user trong lệnh trên bằng người dùng không phải root mà bạn đã tạo làm điều kiện tiên quyết cho hướng dẫn này.
Sao chép kho lưu trữ NodeBBmới nhấtvào thư mục gốc của tài liệu:
Khởi tạo tập lệnh thiết lập bằng cách chạy ứng dụng với cờ
Sau khi thiết lập NodeBB hoàn tất, hãy chạy
Sau khi chạy lệnh này, bạn sẽ có thể truy cập diễn đàn hoàn toàn mới của mình trong trình duyệt web:
Nếu đang chạy, hãy dừng NodeBB:
Tạo người dùng
Thay đổi quyền sở hữu thư mục
Tạo tệp cấu hình đơn vị systemd
LƯU Ý: Đặt tên người dùng và đường dẫn thư mục theo tên bạn đã chọn.
Bật
Kiểm tra trạng thái
Xin chúc mừng! Bạn đã cài đặt và triển khai thành công nền tảng NodeBBdiscussion trên máy chủ CentOS 7.
Yêu cầu
NodeBB yêu cầu cài đặt phần mềm sau:- Node.js phiên bản 6 trở lên
- MongoDB phiên bản 2.6 trở lên hoặcRedis phiên bản 2.8.9 trở lên
- Nginx phiên bản 1.3.13 hoặc greater
- Git
Điều kiện tiên quyết
- Máy chủ chạy hệ thống CentOS 7x86_64 (64-bit) có ít nhất 1GB RAM
- Tên miền có bản ghi
A
/AAAA
được thiết lập - Người dùng không phải root có quyền sudo.
Các bước ban đầu
Kiểm tra phiên bản CentOS:
Mã:
cat /etc/centos-release[B]#CentOS Linux phát hành 7.5.1804 (Core)
Mã:
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
Mã:
sudo yum update -y
Mã:
sudo yum install -y curl wget vimbash-completion git socat epel-release
Mã:
sudo setenforce 0; sudo systemctl stop firewalld.service; sudo systemctl disable firewalld.service
Bước 1: Cài đặt Node.js và npm
NodeBB được xây dựng trênNode.js.Chúng tôi sẽ cài đặt phiên bảnđược khuyến nghịcho NodeBB là phiên bản 8[/b]tại thời điểm viết bài này. Trên Linux, bạn có một số tùy chọn cài đặt Node.js: Linux Binaries (x86/x64), Source Code hoặc thông qua Package Managers. Chúng tôi sẽ sử dụng tùy chọn Quản lý gói giúp việc cài đặt và cập nhật Node.js trở nên dễ dàng.Tải xuống và cài đặt bản phát hành Hỗ trợ dài hạn (LTS) mới nhất củaNode.js từ kho lưu trữ Nodesource:
Mã:
curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
sudo yum -y install nodejs
Mã:
sudo yum install -y gcc-c++ make
# hoặc
# sudo yum groupinstall -y 'Development Tools'
Kiểm tra phiên bản Node.js vànpm:
Mã:
node -v && npm -v
# v8.12.0
# 6.4.1
Mã:
sudo npm install -g npm@latest
Bước 2: Cài đặt và cấu hình MongoDB
NodeBB cần cơ sở dữ liệu để lưu trữ dữ liệu của nó và nó hỗ trợ MongoDB và Redis. Trong hướng dẫn này, chúng tôi chọn MongoDB làm công cụ lưu trữ dữ liệu. Vì vậy, trong vài bước tiếp theo, chúng ta sẽ tải xuống và cài đặt cơ sở dữ liệu MongoDB từ kho lưu trữ rpm MongoDB chính thức:Tạo tệp /etc/yum.repos.d/mongodb-org-4.0.repo để bạn có thể cài đặt MongoDB trực tiếp bằng yum:
Mã:
sudo vim/etc/yum.repos.d/mongodb-org-4.0.repo
Mã:
[mongodb-org-4.0]name=MongoDB Repositorybaseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/gpgcheck=1enabled=1gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
Mã:
sudo yum install -y mongodb-org
Mã:
mongo --version | head -n 1 && mongod --version | head -n 1
# Phiên bản shell MongoDB v4.0.2
# Phiên bản db v4.0.2
Mã:
sudo systemctl start mongod.service
sudo systemctl enable mongod.service
Mã:
sudo systemctl status mongod.service
#active (đang chạy)
Kết nối với máy chủ MongoDB trước.
Mã:
mongo
admin
tích hợp sẵn.
Mã:
> sử dụng admin
Mã:
> db.createUser( { user: "admin", pwd: "", roles: [ { role: "readWriteAnyDatabase", db: "admin" }, { role: "userAdminAnyDatabase", db: "admin" } ] } )
bằng mật khẩu bạn chọn.Thêm cơ sở dữ liệu mới có tên
nodebb
.
Mã:
> sử dụng nodebb
nodebb
. Tiếp theo, tạo người dùng nodebb
với các đặc quyền phù hợp.
Mã:
> db.createUser( { user: "nodebb", pwd: "", roles: [ { role: "readWrite", db: "nodebb" }, { role: "clusterMonitor", db: "admin" } ] } )
bằng mật khẩu bạn đã chọn.Thoát khỏi Mongo shell.
Mã:
> quit()
Mã:
sudo systemctl restart mongod.service
mongo -u admin -p your_password --authenticationDatabase=admin
Bước 3: Cài đặt Acme.sh client và lấy chứng chỉ Let's Encrypt (tùy chọn)
Không nhất thiết phải bảo mật diễn đàn NodeBB của bạn bằng HTTPS, nhưng đây là một biện pháp tốt để bảo mật lưu lượng truy cập trang web của bạn. Để lấy chứng chỉ SSL từ Let's Encrypt, chúng ta sẽ sử dụng Acme.sh client. Acme.sh là phần mềm shell unix thuần túy để lấy chứng chỉ SSL từ Let's Encrypt mà không cần bất kỳ sự phụ thuộc nào.Tải xuống và cài đặtAcme.sh:
Mã:
sudo mkdir /etc/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail [emailprotected]
cd ~
Mã:
/etc/letsencrypt/acme.sh --version
# v2.8.0
Mã:
# 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
- Đối với RSA: thư mục
/etc/letsencrypt/forum.example.com
. - Đối với ECC/ECDSA:
/etc/letsencrypt/forum.example.com_ecc
thư mục.
Bước 4: Cài đặt và cấu hình Nginx
NodeBB có thể hoạt động tốt với nhiều máy chủ web. Trong hướng dẫn này, chúng tôi đã chọn Nginx.Đầu tiên, hãy tải xuống và nhập khóa PGP của kho lưu trữ Nginx:
Mã:
wget https://nginx.org/keys/nginx_signing.key[URL=https://nginx.org/keys/nginx_signing.key?utm_source=diendancongnghe.com]
[/URL]sudo rpm --import nginx_signing.key
Mã:
rm nginx_signing.key
Mã:
sudo vim /etc/yum.repos.d/nginx_mainline.repo
Mã:
[nginx]name=nginx repobaseurl=https://nginx.org/packages/mainline/centos/7/$basearch/gpgcheck=1enabled=1
Mã:
sudo yum install -y nginx
Mã:
nginx -v
# 1.15.3
Mã:
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
Mã:
sudo systemctl status nginx.service
#active (đang chạy)
4567
. Để tránh phải nhập http://example.com:4567
, chúng tôi sẽ cấu hình Nginx làm proxy ngược cho ứng dụng NodeBB. Mọi yêu cầu trên cổng 80
hoặc 443
(nếu sử dụng SSL) sẽ được chuyển tiếp đến cổng 4567
.Chạy
sudo vim /etc/nginx/conf.d/nodebb.conf
và cấu hình Nginx làm proxy ngược HTTPS.
Mã:
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;
khóa_chứng_nhận_ssl /etc/letsencrypt/forum.example.com/forum.example.com.key;
# ECDSA
khóa_chứng_nhận_ssl /etc/letsencrypt/forum.example.com_ecc/fullchain.cer;
khóa_chứng_nhận_ssl /etc/letsencrypt/forum.example.com_ecc/forum.example.com.key;
vị trí / {
proxy_set_header X-Địa_chỉ_thực $remote_addr;
proxy_set_header X-Chuyển_chuyển ... X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4567;
proxy_redirect off;
# Hỗ trợ Socket.IO
proxy_http_version 1.1;
proxy_set_header Nâng cấp $http_upgrade;
proxy_set_header Kết nối "nâng cấp";
}
}
Mã:
sudo nginx -t
Mã:
sudo systemctl reload nginx.service
Bước 5: Cài đặt và thiết lập NodeBB
Tạo thư mục gốc của tài liệu nơi NodeBB sẽ lưu trú:
Mã:
sudo mkdir -p /var/www/nodebb
Mã:
cd /var/www/nodebb
/var/www/nodebb
thànhyour_user.
Mã:
sudo chown -R [your_user]:[your_user] /var/www/nodebb
Sao chép kho lưu trữ NodeBBmới nhấtvào thư mục gốc của tài liệu:
Mã:
git clone -b v1.10.x https://github.com/NodeBB/NodeBB.git .
setup
:
Mã:
./nodebb setup
./nodebb start
để khởi động thủ công máy chủ NodeBB của bạn:
Mã:
./nodebb start
Bước 6: Chạy NodeBB dưới dạng Dịch vụ hệ thống
Khi được khởi động qua./nodebb start
, NodeBB sẽ không tự động khởi động lại khi hệ thống khởi động lại. Để tránh điều đó, chúng ta sẽ cần thiết lập NodeBB như một dịch vụ hệ thống.Nếu đang chạy, hãy dừng NodeBB:
Mã:
./nodebb stop
nodebb
mới:
Mã:
sudo useradd nodebb
/var/www/nodebb
thành người dùng nodebb
:
Mã:
sudo chown -R nodebb:nodebb /var/www/nodebb
nodebb.service
. Tệp đơn vị này sẽ xử lý việc khởi động NodeBB deamon. Chạy sudo vim /etc/systemd/system/nodebb.service
và thêm nội dung bên dưới:
Mã:
[Unit]Description=NodeBBDocumentation=https://docs.nodebb.orgAfter=system.slice multi-user.target mongod.service[Service]Type=forkingUser=nodebbStandardOutput=syslogStandardError=syslogSyslogIdentifier=nodebbEnvironment=NODE_ENV=productionWorkingDirectory=/var/www/nodebbPIDFile=/var/www/nodebb/pidfileExecStart=/usr/bin/env node loader.jsRestart=always[Install]WantedBy=multi-user.target
Bật
nodebb.service
khi khởi động lại và ngay lập tức khởi động nodebb.service:
Mã:
sudo systemctl enable nodebb.service
sudo systemctl start nodebb.service
nodebb.service
:
Mã:
sudo systemctl status nodebb.service
sudo systemctl is-enabled nodebb.service