如何在 Ubuntu 18.04 LTS 上安装 NodeBB 论坛如何在 Ubuntu 18.04 LTS 上安装 NodeBB 论坛如何在 Ubuntu 18.04 LTS 上安装 NodeBB 论坛如何在 Ubuntu 18.04 LTS 上安装 NodeBB 论坛
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Ubuntu 18.04 LTS 上安装 NodeBB 论坛

本教程适用于这些操作系统版本

  • Ubuntu 20.04(Focal Fossa)
  • Ubuntu 18.04(仿生海狸)

在此页

  1. 要求
  2. 先决条件
  3. 第 1 步:安装 Node.js 和 npm
  4. 第 2 步:安装和配置 MongoDB
  5. 第 3 步 - 安装 acme.sh 客户端并获取 Let\>)
  6. 第 4 步:安装和配置 Nginx
  7. 第 5 步:安装和设置 NodeBB
  8. 第 6 步:将 NodeBB 作为系统服务运行
  9. 链接

NodeBB 是为现代网络构建的基于 Node.js 的论坛软件。它建立在 MongoDB 或 Redis 数据库之上。它利用网络套接字进行即时交互和实时通知。 NodeBB 具有许多开箱即用的现代功能,例如社交网络集成和流式讨论。通过使用第三方插件启用附加功能。 NodeBB 是一个开源项目,可以在 Github 上找到。在本指南中,我们将逐步引导您在 Ubuntu 18.04 LTS 操作系统上安装 NodeBB,使用 Nginx 作为反向代理,使用 MongoDB 作为数据库,使用 acme.sh 和 Lets Encrypt for HTTPS。

要求

NodeBB 需要安装以下软件:

  • Node.js 版本 6 或更高版本
  • MongoDB 2.6 版或更高版本或 Redis 2.8.9 版或更高版本
  • Nginx 版本 1.3.13 或更高版本
  • Git

注意: 安装 NodeBBs 依赖项可能需要超过 512 兆字节的系统内存。如果您的 Linux 系统内存不足,建议启用交换分区以进行补偿。

先决条件

  • 运行 Ubuntu 18.04 的系统至少有 1GB 或 RAM。
  • 设置了A/AAAA记录的域名。
  • 具有 sudo 权限的非根用户。

初始步骤

检查您的 Ubuntu 版本:

lsb_release -ds
# Ubuntu 18.04.1 LTS

设置时区:

sudo dpkg-reconfigure tzdata

更新您的操作系统包(软件)。这是重要的第一步,因为它确保您拥有操作系统默认软件包的最新更新和安全修复程序:

sudo apt update && sudo apt upgrade -y

安装 Ubuntu 操作系统基本管理所需的一些基本软件包:

sudo apt install -y curl wget vim git unzip socat bash-completion

第 1 步:安装 Node.js 和 npm

NodeBB 建立在 Node.js 之上。在撰写本文时,我们将为 NodeBB 安装推荐版本 8。在 Linux 上,您有几个 Node.js 安装选项:Linux 二进制文件 (x86/x64)、源代码或通过包管理器。我们将使用包管理选项,这使得安装和更新 Node.js 变得轻而易举。

从 Nodesource 存储库下载并安装最新的 Node.js 长期支持 (LTS) 版本:

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

要从 npm 编译和安装本机附加组件,您可能还需要安装构建工具:

sudo apt install -y build-essential

注意:npm 与 Node.js 一起分发 - 这意味着当您下载 Node.js 时,您会自动在系统上安装 npm。

检查 Node.js 和 npm 版本:

node -v && npm -v
# v10.15.1
# 6.4.1

Npm 是一个独立于 Node.js 的项目,并且更新频率更高。因此,即使您刚刚下载了 Node.js(因此也下载了 npm),您也可能需要更新您的 npm。幸运的是,npm 知道如何自我更新!要更新您的 npm,请在您的终端中输入:

sudo npm install -g 

此命令会将 npm 更新到最新的稳定版本。

使用以下命令重新检查 npm 版本:

npm -v
# 6.7.0

它应该返回最新的版本号。

第 2 步:安装和配置 MongoDB

NodeBB 需要一个数据库来存储它的数据,它支持 MongoDB 和 Redis。在本教程中,我们选择 MongoDB 作为数据存储引擎。因此,在接下来的几个步骤中,我们将从官方 MongoDB rpm 存储库下载并安装 MongoDB 数据库:

要安装 MongoDB 软件包的稳定版本,请发出以下命令:

sudo apt install -y mongodb

检查 MongoDB 版本:

mongo --version | head -n 1 && mongod --version | head -n 1

启动并启用(将其设置为在重启时启动)MongoDB 服务:

sudo systemctl start mongodb.service
sudo systemctl enable mongodb.service

通过运行检查 MongoDB 数据库服务器状态:

sudo systemctl status mongodb.service
# active (running)

接下来,为 NodeBB 创建 MongoDB 数据库和用户。

首先连接到 MongoDB 服务器。

mongo

切换到内置的 admin 数据库。

> use admin

创建管理用户。

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

注意:将占位符 替换为您自己选择的密码。

添加一个名为 nodebb 的新数据库。

> use nodebb

将创建数据库并将上下文切换到 nodebb。接下来创建具有适当权限的 nodebb 用户。

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

注意:同样,将占位符 替换为您自己选择的密码。

退出 Mongo shell。

> quit()

重新启动 MongoDB 并验证之前创建的管理用户是否可以连接。

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

如果一切顺利,您的 MongoDB 应该已安装并为 NodeBB 做好准备。在下一步中,我们将处理 Web 服务器的安装和配置。

第 3 步 - 安装 acme.sh 客户端并获取 Lets Encrypt 证书(可选)

使用 HTTPS 保护您的 NodeBB 论坛不是必需的,但这是保护您的网站流量的好习惯。为了从 Lets Encrypt 获得 TLS 证书,我们将使用 acme.sh 客户端。 Acme.sh 是一个纯 unix shell 软件,用于以零依赖从 Lets Encrypt 获取 TLS 证书。

下载并安装 acme.sh:

sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail
source ~/.bashrc
cd ~

检查 acme.sh 版本:

acme.sh --version
# v2.8.0

为您的域/主机名获取 RSA 和 ECC/ECDSA 证书:<br>

# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256

如果你想要假证书进行测试,你可以在上面的命令中添加 --staging 标志。

运行上述命令后,您的证书和密钥将位于:

  • 对于 RSA:/home/username/example.com 目录。
  • 对于 ECC/ECDSA:/home/username/example.com_ecc 目录。

要列出您颁发的证书,您可以运行:

acme.sh --list

创建一个目录来存储您的证书。我们将使用 /etc/letsencrypt 目录。

mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc

安装/复制证书到 /etc/letsencrypt 目录。

# RSA
acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"

所有证书将每 60 天自动更新一次。

获得证书后,从 root 用户退出并返回到普通 sudo 用户:

exit

第四步:安装配置Nginx

NodeBB 可以与许多网络服务器一起正常工作。在本教程中,我们选择了 Nginx。

安装 Nginx 包,通过发出以下命令:

sudo apt install -y nginx

安装后,您可以通过运行以下命令来验证 Nginx 版本:

nginx -v

启动并启用(将其设置为在重启时启动)Nginx 服务:

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

通过运行以下命令检查 Nginx 网络服务器状态:

sudo systemctl status nginx.service
# active (running)

默认情况下,NodeBB 在端口 4567 上运行。为避免键入 http://example.com:4567,我们将 Nginx 配置为 NodeBB 应用程序的反向代理。端口 80 或 443(如果使用 SSL)上的每个请求都将转发到端口 4567。

运行 sudo vim /etc/nginx/conf.d/nodebb.conf 并将 Nginx 配置为 HTTPS 反向代理。

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

server_name example.com;

client_max_body_size 50M;

# RSA
ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com/private.key;
# ECDSA
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.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";
}

}

检查 Nginx 配置:

sudo nginx -t

最后,为了使更改生效,我们需要重新加载 Nginx:

sudo systemctl reload nginx.service

第 5 步:安装和设置 NodeBB

创建 NodeBB 应驻留在的文档根目录:

sudo mkdir -p /var/www/nodebb

导航到文档根目录:

cd /var/www/nodebb

将 /var/www/nodebb 目录的所有权更改为您的用户。

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

注意:将上述命令中的 your_user 替换为您应该作为本教程的先决条件创建的非根用户。

将最新的 NodeBB 存储库克隆到文档根文件夹中:

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

通过使用 setup 标志运行应用程序来启动设置脚本。回答每个问题:

./nodebb setup

NodeBB 设置完成后,运行 ./nodebb start 手动启动您的 NodeBB 服务器:

./nodebb start

运行此命令后,您应该能够在网络浏览器中访问全新的论坛:

第 6 步:将 NodeBB 作为系统服务运行

通过./nodebb start启动时,NodeBB不会在系统重启时自动再次启动。为避免这种情况,我们需要将 NodeBB 设置为系统服务。

如果正在运行,请停止 NodeBB:

./nodebb stop

创建一个新的 nodebb 用户:

sudo useradd nodebb

将 /var/www/nodebb 目录的所有权更改为 nodebb 用户:

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

创建一个 nodebb.service systemd 单元配置文件。该单元文件将处理 NodeBB 守护进程的启动。运行 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.service 并立即启动 nodebb.service:

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

检查 nodebb.service 状态:

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

恭喜!您已经在 Ubuntu 18.04 系统上成功安装和部署了 NodeBB 讨论平台。您应该能够在您的域上访问您的论坛并与您的论坛互动。

链接

  • https://nodebb.org/ <李>
  • https://github.com/NodeBB/NodeBB

©2015-2025 艾丽卡 support@alaica.com