本帖最后由 请叫我C先生 于 2024-11-23 00:43 编辑
说在最前:
其实安装Nodebb主要是考虑以后如果有可能,我会将网站直接做成app或者微信的小程序,查询了一圈,看上去只有NodeBB最合适,主要是后期开发成本较低。。
于是我就入坑了.... 当你真正上手安装才知道,为啥这玩意中文社区几乎没有,Github的中文doc停留在了6~7年前...
先决条件
在开始安装和配置 MongoDB 之前,您需要准备以下内容:
- 一台运行 Debian 12 的服务器(因为我的服务器是这个系统),已经安装了 sudo 和 curl 工具。
- 一个具有 sudo 权限的用户账户,用于执行安装和配置的命令。
然后我们开始
安装NodeJS
首先是安装环境
进入宝塔面板 ,安装nodejs(宝塔面板中搜索Node.js版本管理器然后安装即可,最好选v18)
安装MongoDB
然后继续,在宝塔面板的软件商店中搜索MongoDB然后选择安装
MongoDB 是 NodeBB 的默认数据库。根据 MongoDB 支持政策,截至 2024 年 2 月,4.4 版之前的版本已被正式终止支持。本指南安装版本为 8.0。
注意:请安装8.0版本(据说是效率比7x版本又上了一个台阶)
安装好以后,我们先来设置
打开配置
注意,监听IP必须修改为
监听端口可以随意修改,但不建议修改
然后不要手贱一上来就打开安全验证,因为你目前还要对数据库进行一次手动配置
然后打开终端
使用管理员账户
管理员账户运行
运行命令(使用amin库)
- db.createUser({ user: "admin", pwd: "这里输入你认为相对安全的密码", roles: [{ role: "root", db: "admin" }] })
复制代码
验证你创建的admin用户名密码
- db.auth('admin','这里输入你刚才创建的,你认为相对安全的密码');
复制代码
然后退出mongosh
我们验证一下你刚才的管理员账户
- mongosh "mongodb://localhost:27017" --username admin --authenticationDatabase admin
复制代码
这时会要求你输入密码
如果通过验证,那就说明ok了
在宝塔面板上创建你的数据库
刚刚我们创建了管理员的用户名密码
现在我们要在宝塔面板上创建一个数据库,你可以任意起名字
我写的就是nodebb
然后我们继续回到终端,输入
我们现在要创建一个,用户你nodebb数据库的用户名和密码
- db.createUser( { user: "nodebb", pwd: "你的密码", roles: [ { role: "readWrite", db: "nodebb" }, { role: "clusterMonitor", db: "admin" } ] } )
复制代码
我们进入nodebb数据库
然后我们验证一下我们刚才创建的用户名密码
- db.auth('nodebb','你的密码');
复制代码
好了,至此,你的用户名密码已经建立好了,我们回到宝塔面板——数据库
开启安全验证
请注意!请务必开启安全验证,否则就像。。。你花了一万块钱买了一个防盗门然后从来不上锁。。。。。你家大门常打开。。。。。。
我们开始安装 NodeBB
安装git
首先,我们必须安装git它用于分发NodeBB
下载NodeBB程序
打开终端,进入 /www/wwwroot目录(宝塔默认的网站文件存储目录)
- git clone -b v3.x https://github.com/NodeBB/NodeBB.git nodebb
- cd nodebb
复制代码
这将从 v3.x 分支克隆 NodeBB 仓库到 nodebb 目录。NodeBB 分支 GitHub 页面中提供了替代分支列表,但只有版本化分支是稳定的。
安装NodeBB
NodeBB 自带一个命令行工具,允许执行多个功能。我们首先使用它来设置 NodeBB。这将从 npm 安装模块,然后进入设置工具。
恭喜你看到这里,但是还没完
此时由于你的服务器没有Nodejs或者由于其他个人莫名其妙的版本问题与依赖冲突,./nodebb setup可能无法运行
没关系,请往下看
再次安装NodeJS和npm安装器
先确定你的nodejs和npm有没有工作
如果没有,那么我们继续
- sudo apt update && sudo apt upgrade -y && sudo apt install -y nodejs npm && sudo npm config set registry https://registry.npmmirror.com && sudo npm install -g n && sudo apt remove nodejs npm -y && sudo apt autoremove -y && sudo n latest
复制代码
代码释义
更新软件源/更新软件/使用apt安装nodejs,npm/设置npm镜像源(淘宝)/使用npm安装n/卸载nodejs,npm/使用n安装最新版本的nodejs,npm
完成后再次确认你的npm和nodejs版本
看看还有没有错误,如果依然出错,那么就直接单独安装
安装node
- sudo apt install -y nodejs
复制代码
安装npm
然后再次确认你的npm和nodejs版本
一般这样就没问题了
我们继续
保险起见,我们安装yarn
运行以下命令来添加Yarn的APT存储库
- curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
- echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
复制代码
安装Yarn
- sudo apt update
- sudo apt install yarn
复制代码
验证安装: 安装完成后,你可以运行以下命令来验证Yarn是否成功安装
这里解释一下,为什么安装完了npm安装器还要安装yarn,
主要原因是两种不同的安装方式,npm是类似线性执行的方式来安装,它的安装是最安全,也是最稳妥的,但是npm缺德的一点是它有可能会因为依赖树中的某个节点版本不匹配而直接停止安装,导致npm安装中断,然后你就要去修复各种莫名其妙的问题,如此往复,我就是这样耽误了三天。。。。[怒摔!!!]
而yarn是会去尝试解析所有依赖,并生成一个一致的依赖树,即使某些依赖版本不匹配,它也会尽量安装其他依赖,并在最后报告错误。
所以,在这里依然建议先使用npm来安装,如果不行再使用yarn
好了我们继续我们的安装
我们回到/www/wwwroot/nodebb文件夹,运行命令
这是一个sharp的图像插件,具体意义未知,据说是不运行这个就安装不上,那就运行一下,然后我们继续
完成后运行
如果出错,则执行
等待完成,yarn处理完成后,我们继续
此时就会出现nodebb的安装流程了
注意,安装一路默认即可,有些地方需要注意,如下:
- This looks like a new installation, so you'll have to answer a few questions about your environment before we can proceed.
- Press enter to accept the default setting (shown in brackets).
- URL used to access this NodeBB (http://localhost:4567) #注意这个端口!以后要用到
- Please enter a NodeBB secret (***********-*******-******-***-*****)
- Would you like to submit anonymous plugin usage to nbbpm? (yes)
- Which database to use (mongo)
- 2049-10-01T15:16:26.107Z [17717] - info:
- Now configuring mongo database:
- MongoDB connection URI: (leave blank if you wish to specify host, port, username/password and database individually)
- Format: mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
- Host IP or address of your MongoDB instance (127.0.0.1)
- Host port of your MongoDB instance (27017)
- MongoDB username #你的MongoDB用户名(是不是差不多都忘了)
- Password of your MongoDB database #这里输入你的数据库密码(不显示)
- MongoDB database name (nodebb) #你的MongoDB数据库名称
- 2049-10-01T15:17:00.522Z [17717] - info: [database] Checking database indices.
- 2049-10-01T15:17:00.669Z [17717] - info: [database] Checking database indices done!
- 2049-10-01T15:17:07.355Z [17717] - verbose: [minifier] utilizing a maximum of 2 additional threads
- Configuration Saved OK
- Populating database with default configs, if not already set...
- 2049-10-01T15:17:07.471Z [17717] - warn: [cache-buster] could not read cache buster ENOENT: no such file or directory, open '/root/nodebb/build/cache-buster' {"errno":-2,"code":"ENOENT","syscall":"open","path":"/root/nodebb/build/cache-buster","stack":"Error: ENOENT: no such file or directory, open '/root/nodebb/build/cache-buster'"}
- Enabling default theme: nodebb-theme-persona
- No categories found, populating instance with default categories
- 2049-10-01T15:17:09.204Z [17717] - warn: No administrators have been detected, running initial user setup
- Administrator username #你的论坛管理员账户登录名
- Administrator email address #你的论坛管理员账户登录邮箱admin@admin.com
- Password #你的管理员密码
- Confirm Password #再次确认你的管理员密码
- Creating welcome post!
- Enabling default plugins
复制代码
好了,完成以后既可以启动了
启动NodeBB
激动不激动???别急还没完
设置域名访问
刚才那一长串代码看到了么?你运行./nodebb start启动以后,就可以用http+你的IP+4567端口来访问了
但是每个网站都要有域名不是吗?那我们应该怎么做呢?
看下图
这样就可以了,当然这里就不赘述添加SSL访问这种操作了,宝塔里有手就会
修改config.json
最后的最后,别忘记修改config.json,将
- "url": "http://127.0.0.1:4567"
复制代码
改成你的域名
注意,如果你设置了SSl访问,http要加s
然后回到nodebb目录
执行
写在最后
我嘞个去啊!!!
三天啊!!
我折腾这个B玩意整整三天啊!
期间还去nodebb.org详细询问了错误出现的原因,最终也是无解,我真是醉了。
虽然逻辑通顺,但是这玩意安装起来太麻烦了,尤其对于新手来说,就是各种权限地狱!新手谨慎安装!!!!
这是我的站
控制台无错
注意!!!!
这里所有提到的Shell命令,都是要权限支持的,如果不熟悉Linux权限的朋友,请谨慎尝试
默认安装完成的Nodebb在浏览器中使用F12打开控制台查看,是没有任何错误的,凡是安装完成后,网站页面显示和提示莫名其妙的错误,都来自于权限问题!
或者你也可以向Ai寻找答案,这里推荐阿里的通义千问大模型 ,非常不错)
相关链接
这里给出一些比较有用的相关链接,方便大家查阅
- Nodebb官方论坛:https://community.nodebb.org/
- Nopebb官方文档:https://docs.nodebb.org/
- Nodebb基础使用与开发(语雀@藤之青):https://www.yuque.com/a632079/nodebb
- Github大佬建立的Nodebb中文文档(貌似看上去已经很久没更新了):https://github.com/NodeBB-China/nodebb-cn-docs/tree/master
- 对了还有我的站:https://bbs.aiink.cn/
宝塔赶紧出个官方的一键配置吧这玩意小白配置起来绝对想死啊,还有各种权限地狱。。。。。
|
|