NodeBB là phần mềm diễn đàn hiện đại được hỗ trợ bởi Node.js, sử dụng MongoDB/Redis làm nền tảng cơ sở dữ liệu. 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.
Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách cài đặt diễn đàn NodeBB trên máy chủ chạy Ubuntu 20.04.
[*]
Một số gói thiết yếu. Một số trong số này sẽ có sẵn trên máy chủ của bạn.
Kiểm tra xem tường lửa có đang chạy không.
Bạn sẽ nhận được kết quả sau.
Cho phép cổng SSH để tường lửa không làm gián đoạn kết nối hiện tại khi bật nó.
Cho phép Cổng
Bật Tường lửa.
Kiểm tra lại trạng thái của tường lửa.
Bạn sẽ thấy kết quả tương tự.
Kiểm tra xem Node đã được cài đặt đúng chưa.
Bạn sẽ thấy kết quả tương tự.
Kiểm tra cả npm nữa.
Kho lưu trữ của MongoDB cho Ubuntu 20.04 vẫn chưa sẵn sàng và bản thân Ubuntu có phiên bản rất cũ. Đối với mục đích của chúng tôi, chúng tôi sẽ sử dụng kho lưu trữ MongoDB cho 18.04 hoạt động tốt. Bạn có thể cập nhật danh sách gói bằng kho lưu trữ mới nhất khi có hỗ trợ chính thức.
Nhập khóa công khai cho MongoDB.
Thêm kho lưu trữ MongoDB.
Cập nhật cơ sở dữ liệu gói cục bộ.
Cài đặt MongoDB.
Xác minh cài đặt MongoDB.
Khởi động dịch vụ MongoDB.
Kích hoạt dịch vụ MongoDB.
Kiểm tra trạng thái của dịch vụ MongoDB.
Truy cập MongoDB shell.
Chuyển sang cơ sở dữ liệu
Tạo người dùng quản trị. Người dùng này không giống với người dùng quản trị NodeBB.
Thay đổi chỗ giữ chỗ
Thêm cơ sở dữ liệu mới cho NodeBB.
Tiếp theo, tạo người dùng
Quyền
Thoát khỏi shell Mongo.
Mở tệp cấu hình MongoDB để chỉnh sửa.
Thêm dòng sau vào cuối tệp.
Khởi động lại MongoDB và xác minh người dùng quản trị đã tạo trước đó.
Bạn sẽ thấy dấu nhắc Mongo nếu mọi thứ đã được cấu hình đúng.
Chạy lệnh sau để cài đặt Git.
Chạy các lệnh sau để thực hiện cấu hình ban đầu của Git.
Tạo một người dùng không có đặc quyền.
Đặt mật khẩu theo ý bạn và bỏ qua các tùy chọn khác.
Tạo thư mục nơi diễn đàn NodeBB của bạn sẽ tồn tại.
Đổi quyền sở hữu thư mục thành người dùng mới được tạo.
Đăng nhập vào người dùng mới tạo.
Chuyển đến thư mục cài đặt NodeBB.
Để cài đặt NodeBB, trước tiên chúng ta cần sao chép kho lưu trữ Github của nó.
Sao chép NodeBB vào thư mục
Ở đây chúng tôi đã sao chép v1.14.2 của NodeBB, đây là phiên bản ổn định mới nhất tại thời điểm viết hướng dẫn. Bạn có thể tìm thấy nhánh ổn định mới nhất từ trang Bản phát hành mới nhất của NodeBB.
NodeBB đi kèm với một tiện ích dòng lệnh. Sử dụng lệnh sau để cài đặt NodeBB.
Bạn có thể nhấn enter để chọn giá trị mặc định.
Đối với giá trị của URL được sử dụng để truy cập NodeBB này, hãy chọn URL cuối cùng mà bạn muốn truy cập diễn đàn. Nếu bạn sẽ truy cập diễn đàn thông qua IP máy chủ của mình, hãy nhập URL đó hoặc nhập tên miền đầy đủ của diễn đàn. Ở đây, chúng ta sẽ nhập
Tiếp tục chọn các giá trị mặc định cho đến khi bạn được nhắc nhập Tên người dùng MongoDB, đó là lúc bạn nhập nodebb và mật khẩu mà bạn đã chọn trước đó cho tên người dùng đó khi định cấu hình MongoDB. Bạn nên chọn cơ sở dữ liệu nodebb. Bạn cũng sẽ được yêu cầu tạo người dùng quản trị viên và thông tin chi tiết của người dùng đó.
Sau khi thiết lập hoàn tất, hãy chạy lệnh sau để khởi động NodeBB.
Diễn đàn của bạn hiện đang chạy. Bạn có thể truy cập diễn đàn qua
Bạn có thể thấy thông báo lỗi có nội dung Có vẻ như kết nối của bạn với NodeBB đã bị mất, vui lòng đợi trong khi chúng tôi thử kết nối lại. Có vẻ như chúng tôi đã chọn URL mặc định cho NodeBB
Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách cài đặt diễn đàn NodeBB trên máy chủ chạy Ubuntu 20.04.
Điều kiện tiên quyết
-
Máy chủ chạy Ubuntu 20.04 với người dùng không phải root có quyền sudo.
-
RAM tối thiểu 2GB. Nếu máy chủ của bạn chỉ có 1GB RAM, tốt nhất là bật phân vùng hoán đổi.
-
Đảm bảo mọi thứ được cập nhật.
Mã:
$ sudo apt update && sudo apt upgrade
Một số gói thiết yếu. Một số trong số này sẽ có sẵn trên máy chủ của bạn.
Mã:
$ sudo apt install curl wget nano ca-certificates gnupg2 lsb-release
Bước 1 - Cấu hình Tường lửa
Bước đầu tiên là cấu hình tường lửa. Ubuntu mặc định có ufw (Uncomplicated Firewall).Kiểm tra xem tường lửa có đang chạy không.
Mã:
$ sudo ufw status
Mã:
Trạng thái: không hoạt động
Mã:
$ sudo ufw allow OpenSSH
27017
cho máy chủ MongoDB và cổng 4567
để chạy diễn đàn NodeBB. Cho phép cả cổng HTTP
và HTTPS
.
Mã:
$ sudo ufw allow 27017$ sudo ufw allow 4567$ sudo ufw allow 80$ sudo ufw allow 443
Mã:
$ sudo ufw enableLệnh có thể làm gián đoạn các kết nối ssh hiện có. Tiến hành thao tác (y|n)? yTường lửa đang hoạt động và được bật khi khởi động hệ thống
Mã:
$ sudo ufw status
Mã:
Trạng thái: đang hoạt độngĐến Hành động Từ-- ------ ----OpenSSH ALLOW Anywhere27017 ALLOW Anywhere4567 ALLOW Anywhere80 ALLOW Anywhere443 ALLOW AnywhereOpenSSH (v6) ALLOW Anywhere (v6)27017 (v6) ALLOW Anywhere (v6)4567 (v6) ALLOW Anywhere (v6)80 (v6) ALLOW Anywhere (v6)443 (v6) ALLOW Anywhere (v6)
Bước 2 - Cài đặt Node.js
Chúng tôi sẽ cài đặt phiên bản LTS của Node.js tại đây. Chạy các lệnh sau để cài đặt Node.js.
Mã:
$ curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -$ sudo apt install nodejs
Mã:
$ node --version
Mã:
v12.18.3
Mã:
$ npm --version6.14.6
Bước 3 - Cài đặt MongoDB
MongoDB là cơ sở dữ liệu mặc định cho NodeBB. Bạn cũng có thể sử dụng Redis thay cho MongoDB. Chúng tôi sẽ đề cập đến cả hai cơ sở dữ liệu trong hướng dẫn của mình.Kho lưu trữ của MongoDB cho Ubuntu 20.04 vẫn chưa sẵn sàng và bản thân Ubuntu có phiên bản rất cũ. Đối với mục đích của chúng tôi, chúng tôi sẽ sử dụng kho lưu trữ MongoDB cho 18.04 hoạt động tốt. Bạn có thể cập nhật danh sách gói bằng kho lưu trữ mới nhất khi có hỗ trợ chính thức.
Nhập khóa công khai cho MongoDB.
Mã:
$ wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
Mã:
$ echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
Mã:
$ sudo apt update
Mã:
$ sudo apt install mongodb-org
Mã:
$ mongod --versiondb version v4.2.8...
Mã:
$ sudo systemctl start mongod
Mã:
$ sudo systemctl enable mongod
Mã:
$ sudo systemctl status mongod
Bước 4 - Cấu hình MongoDB
Quản trị MongoDB được thực hiện thông qua MongoDB shell. Cài đặt MongoDB mặc định lắng nghe trên cổng 27017.Truy cập MongoDB shell.
Mã:
$ mongo
admin
tích hợp sẵn.
Mã:
> sử dụng admin
Mã:
> db.createUser( { user: "admin", pwd: "yourpassword", roles: [ { role: "root", db: "admin" } ] } )
“yourpassword”
thành mật khẩu của riêng bạn.Thêm cơ sở dữ liệu mới cho NodeBB.
Mã:
> use nodebb
nodebb
để quản lý cơ sở dữ liệu nodebb
.
Mã:
> db.createUser( { user: "nodebb", pwd: "yourpassword", roles: [ { role: "readWrite", db: "nodebb" }, { role: "clusterMonitor", db: "admin" } ] } )
readwrite
cho phép NodeBB lưu trữ và truy xuất dữ liệu từ cơ sở dữ liệu nodebb
. Quyền clustermonitor
cho phép NodeBB truy cập chỉ đọc vào số liệu thống kê cơ sở dữ liệu có thể nhìn thấy thông qua bảng điều khiển Quản trị của nó.Thoát khỏi shell Mongo.
Mã:
> quit()
Mã:
$ sudo nano /etc/mongod.conf
Mã:
security: authorization: enabled
Mã:
$ sudo systemctl restart mongod$ mongo -u admin -p yourpassword --authenticationDatabase=admin
Bước 5 - Cài đặt Git
Trước khi tiến hành cài đặt NodeBB, chúng ta cần cài đặt Git.Chạy lệnh sau để cài đặt Git.
Mã:
$ sudo apt install git
Mã:
$ git config --global user.name "Tên của bạn"$ git config --global user.email "[emailprotected]"
Bước 6 - Cài đặt NodeBB
Không nên chạy NodeBB với tư cách là người dùng root.Tạo một người dùng không có đặc quyền.
Mã:
$ sudo adduser nodebb
Tạo thư mục nơi diễn đàn NodeBB của bạn sẽ tồn tại.
Mã:
$ sudo mkdir /var/www/nodebb
Mã:
$ sudo chown -R nodebb:nodebb /var/www/nodebb
Mã:
$ su nodebb
Mã:
$ cd /var/www/nodebb
Sao chép NodeBB vào thư mục
/var/www/nodebb
. Dấu chấm ở cuối lệnh tham chiếu đến thư mục hiện tại.
Mã:
$ git clone -b v1.14.2 https://github.com/NodeBB/NodeBB.git .
NodeBB đi kèm với một tiện ích dòng lệnh. Sử dụng lệnh sau để cài đặt NodeBB.
Mã:
$ ./nodebb setup
Đối với giá trị của URL được sử dụng để truy cập NodeBB này, hãy chọn URL cuối cùng mà bạn muốn truy cập diễn đàn. Nếu bạn sẽ truy cập diễn đàn thông qua IP máy chủ của mình, hãy nhập URL đó hoặc nhập tên miền đầy đủ của diễn đàn. Ở đây, chúng ta sẽ nhập
http://forum.example.com
.Tiếp tục chọn các giá trị mặc định cho đến khi bạn được nhắc nhập Tên người dùng MongoDB, đó là lúc bạn nhập nodebb và mật khẩu mà bạn đã chọn trước đó cho tên người dùng đó khi định cấu hình MongoDB. Bạn nên chọn cơ sở dữ liệu nodebb. Bạn cũng sẽ được yêu cầu tạo người dùng quản trị viên và thông tin chi tiết của người dùng đó.
Sau khi thiết lập hoàn tất, hãy chạy lệnh sau để khởi động NodeBB.
Mã:
$ ./nodebb start
http://:4567
.Bạn có thể thấy thông báo lỗi có nội dung Có vẻ như kết nối của bạn với NodeBB đã bị mất, vui lòng đợi trong khi chúng tôi thử kết nối lại. Có vẻ như chúng tôi đã chọn URL mặc định cho NodeBB
http://forum.example.com
chứ không phải http://