欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

现代化个人论坛系统搭建

时间:2023-07-27

本文更新于2022.02.07
最新原文请看:Ubuntu搭建NodeBB

个人论坛系统搭建

这里是我的论坛地址: www.ahoh.club,看完再决定要不要往下看。

想必有很多人,尤其是计算机相关从业者、在校生,都有搭建个人网站的想法,比如个人博客、论坛等。

如果自己写一个论坛的话,难度比较高,还是推荐开源的论坛系统,国内的开源论坛系统整体的环境都不太好,社区不活跃、界面太丑、技术也比较老旧,当然,他们也是可以满足特种需求的。

但是就白嫖而言,还是国外的完全开源更香,本教程就是使用的国外开源论坛系统NodeBB(基于Node.js的BBS)。

首先就个人比较关心的几个问题做出回答:

系统稳定性,NodeBB当前最新版本1.19.1,就我近一周的体验,没有任何BUG,稳定的超乎我的预期。论坛活跃性,NodeBB有相当活跃的论坛,基本上所有的问题都会得到回应:NodeBB社区界面美观性,NodeBB拥有现代化的界面,而且具有丰富的主题、配色,可以看这里自己体会: www.ahoh.club功能完善性,NodeBB拥有完善的后台管理系统,细粒度的权限控制系统,搭建完成后,只需要点点点就能完成个性化。系统本地化,NodeBB的中文化做的很不错,基本上看不到什么英文,所有的导航标签都能自己用中文命名。 心动不如行动,你需要准备的东西: 一个服务器,可以在腾讯云、阿里云、或者华为云购买服务器一个域名,这个可有可无,实在不行直接用IP访问,一样的一个个人邮箱,NodeBB基于邮箱发送通知,所以这个需要有

官方指导教程 https://docs.nodebb.org/installing/os/
推荐使用 Ubuntu20.04 安装,基本上没有什么障碍,以下是个人翻译的中文加强版

官方指导教程 https://docs.nodebb.org/installing/os/
推荐使用 Ubuntu20.04 安装,基本上没有什么障碍,以下是中文翻译&加强版:

在 Ubuntu 上安装NodeBB

本安装指南针对 Ubuntu 20.04 进行了优化,并将使用MongoDB作为数据库安装NodeBB。教程假设您在搭建NodeBB的全程都使用拥有完整补丁和软件的LTS版本。

个人建议在开始教程之前先 apt-get update 一下,以避免不必要的麻烦。

没有 Ubuntu 20.04 ?- 针对 Ubuntu 18.04的简单指南,其中包含大量屏幕截图,可以在NodeBB博客上找到。

如果有Ubuntu 18.04 教程汉化的需求,可以留言,会优先出这个教程。

系统要求

内存:安装 NodeBB 的依赖项可能需要超过 512 MB 的系统内存。建议启用交换分区,以便在 Linux 系统内存不足时进行补偿。 安装 Node.js

显然 NodeBB 是由Node.js 驱动的,因此需要安装。Node.js 是一个发展快速的平台,因此建议安装当前Node.js的LTS版本以使将来的更新变得毫无意义。Node.js LTS 计划详细介绍了 LTS 发布计划,包括预计的生命周期结束。

Node.js可从 NodeSource Ubuntu 二进制发行版仓库获得。

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

以下命令可以验证 Node.js 和 npm 的安装是否成功。您应该安装了版本 16 的 Node.js 和 版本 6的npm:

node -v (should output "v16.13.1" or similar)npm -v (should output "6.14" or similar)

数据库 安装 MongoDB

MongoDB是NodeBB默认的数据库。如MongoDB文档中所述,早于4.0的版本将于2021年10月正式终止使用。本指南假定安装 5.0。如果您希望使用其他数据库而不是MongoDB,则"配置数据库"部分提供了更多信息。

官方详细的安装说明可以在MongoDB手册中找到。虽然超出了本指南的范围,但出于高可用性和性能的原因,某些MongoDB生产部署利用集群,分片和复制。请参阅 MongoDB 复制和分片主题以进行进一步学习。请记住,NodeBB 不需要任何这些高级配置,这样做可能会使您的安装复杂化。经常保持简单可能是最好的。

以下是Ubuntu官方MongoDB安装指南的缩写。如果您遇到问题,请回退到改用该指南。

wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.listsudo apt-get updatesudo apt-get install -y mongodb-org

以下命令,验证MongoDB的安装是否成功。您应该具有 5.0 版:

mongod --versiondb version v5.0

启动服务并验证服务状态:mongod

sudo systemctl start mongodsudo systemctl status mongod

配置 MongoDB

一般的MongoDB管理是通过MongoDB Shell完成的。MongoDB默认安装在端口上侦听,并且可以在本地访问。访问shell:mongo 27017

mongo

切换到内置数据库:admin

> use admin

创建管理用户(与我们稍后创建的nodebb用户不同)。将占位符替换为您自己选择的密码。确保 < 和 > 也替换掉。

> db.createUser( { user: "admin", pwd: "", roles: [ { role: "root", db: "admin" } ] } )

一旦授权被启用,该用户将进入admin数据库管理MongoDB。

要最初创建一个不存在的数据库,只需use它。添加一个名为 nodebb 的数据库:

> use nodebb

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

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

读写权限允许NodeBB存储和检索nodebb数据库中的数据。clusterMonitor权限为NodeBB提供对查询数据库服务器统计信息的只读访问,这些统计信息随后在NodeBB管理控制面板(ACP)中公开。

退出 Mongo Shell:

> quit()

在MongoDB配置文件/etc/mongod中启用数据库授权。通过附加以下代码行进行配置:

security: authorization: enabled

提醒:虽然官方教程中有这一步,但是我在配置的时候并没有使用这个配置,因为使用这个配置会在下一步验证中报错。我安装的系统是 Ubuntu 20.04,如果你在下一步中无法启动MongoDB,可以尝试去掉这个配置。

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

sudo systemctl restart mongodmongo -u admin -p your_password --authenticationDatabase=admin

如果一切都配置正确,Mongo Shell将连接。退出shell程序。

如果没有成功启动,可以尝试去掉上面说的那个配置

安装 NodeBB

首先,我们必须安装 git,因为它用于分发NodeBB:

sudo apt-get install -y git

注意:git 和 ./nodebb 不应用 root 权限访问(sudo或超级管理员权限)一起使用。这将导致nodebb需要访问的文件具有不同的所有权从而出现问题。

接下来,将 NodeBB 克隆到适当的位置。这里使用本地目录nodebb ,尽管任何目录都很好:

git clone -b v1.18.x https://github.com/NodeBB/NodeBB.git nodebbcd nodebb

这会将 NodeBB 存储库从分支v1.18.x克隆到目录。 GitHub 的NodeBB 分支页面中提供了备用分支的列表,但只有受版本控制的分支是稳定的。

NodeBB附带了一个命令行程序,该实用程序有多种功能。我们将首先使用它来设置 NodeBB。这将从 npm 安装模块,然后进入安装程序。

./nodebb setup

国内网络问题可能导致安装失败,如果出现以下问题:

npm ERR! code 1npm ERR! path /home/ubuntu/app/nodebb/node_modules/sharpnpm ERR! command failednpm ERR! command sh -c (node install/libvips && node install/dll-copy && prebuild-install) || (node install/can-compile && node-gyp rebuild && node install/dll-copy)npm ERR! sharp: Downloading https://github.com/lovell/sharp-libvips/releases/download/v8.11.3/libvips-8.11.3-linux-x64.tar.brnpm ERR! sharp: Please see https://sharp.pixelplumbing.com/install for required dependenciesnpm ERR! sharp: Installation error: aborted

解决方法:

# 直接执行以下命令即可npm config set sharp_binary_host "https://npm.taobao.org/mirrors/sharp"npm config set sharp_libvips_binary_host "https://npm.taobao.org/mirrors/sharp-libvips"npm install sharp

安装过程中,系统将提示一系列问题,并在括号中添加默认值。

默认设置适用于在默认端口4567上侦听的本地服务器,以及在端口27017上侦听的MongoDB实例。

当提示输入mongodb用户名和密码时,请输入nodebb和您之前配置的密码。

一旦确认与数据库的连接,安装程序将提示用户初始安装程序正在运行。因为这是一个新的NodeBB 安装,所以必须配置论坛管理员。

输入所需的管理员信息。这将在输出NodeBB Setup Completed消息后结束安装。

注意:当输入你的网站URL时,确保它正是你访问网站的计划。如果你打算去http://example.org打开论坛,请准确输入http://example.org.

配置文件 config.json 将在 nodebb 根目录中创建。如果需要进行更改(如更改用于访问数据库的数据库位置或凭据),可以修改此文件。

最后,您可以使用 cli 实用程序启动 NodeBB:

./nodebb start

配置 Nginx

虽然,官方教程示范的案例同样可以使用,但是,并不能满足大多数情况下的需求,比如我们配置SSL,使用https访问论坛。
因此,下面的Nginx教程并非官网原本的教程,但是可以指导您完成复杂的Nginx配置。

请参考:使用OneinStack配置Nginx

提醒:该教程本本身就是针对 NodeBB 论坛编制的,因此无需担心不匹配的问题。

如果您仍然希望使用官网教程,可以点击这里

安装完成

真棒棒,您已经安装并运行了NodeBB。您应该能够访问http://forum.example.com 并与您的论坛互动了。

如果本文帮助了您,点个赞鼓励一下作者吧,谢谢。

如果您发现了本教程不合适的翻译,或者错误指导,请留言指正!!

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。