winserver +MongoDB 搭建 nodebb 论坛笔记
首先感谢@zhilian 小蓝提供的服务器
这不是上网课吗,闲着没事干就重操旧业,
我用nodebb搭建了一个学校社区
这是示意图
一、环境
nodejs,MongoDB,nginx
Scoop(windows 管理器)
- 安装前请检查环境是否到位:
- 系统: Windows 8.1+ / Windows Server 2012+
- PowerShell v3+ (若您的 PowerShell 版本低于低版本, 请点击这里进行更新)
- 先熟悉一下大致流程
- 打开一个 具有管理员权限的 Powershell 窗口(Administrative Shell)。
可以使用
Ctrl + Shift +Esc
唤起任务管理器。 然后新建任务时勾选 以系统管理权限创建此任务 (可能只有 Windows 10 或者 Windows Server 2016 支持此方法)
- 添加脚本执行权限
$ Set-ExecutionPolicy RemoteSigned -scope CurrentUser
-
执行安装脚本
$ iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
-
先安装 Git 以及 OpenSSH
$ scoop install git $ scoop install openssh
- 扩展一下, 添加仓库扩展
$ scoop bucket add extras
$ scoop bucket add versions
二、配置
1. Node.js
$ node -v
$ npm -v
$ yarn -v
如果都有版本号输出的话,那说明都安装成功了。
2. 数据库
2.1 MongoDB (推荐)
MongoDB 是一个比较优秀的 NoSQL 数据库。相比 Redis ,它更适用大型高负载的社区使用。
- 检测是否成功安装,输入下面的指令:
$ mongo --version
不出意外的话,你得到的结果应该和上图类似:
-
新建下面的两个文件夹 (
D:\MongoDB
和D:\MongoDB\data
-
在 PowerShell 中 输入:
$ mongod --dbpath 'D:\Mongodb\data' --logpath 'D:\Mongodb\Mongodb.log'
因为路径中可能会出现空格,所以我们给
dbpath>
和logpath
指定路径的时候需要加一个引号来避免字符串截断的问题。
- 为 NodeBB 安装 配置数据库
- 新开一个窗口, 输入:
mongo
> use admin
> db.createUser( { user: "替换成你想要的Admin帐户名", pwd: "替换成你的Admin账户的密码", roles: [ { role: "readWriteAnyDatabase", db: "admin" }, { role: "userAdminAnyDatabase", db: "admin" } ] } )
- 创建 NodeBB 账户
> use nodebb
> db.createUser( { user: "nodebb", pwd: "替换成你的NodeBB账户的密码", roles: [ { role: "readWrite", db: "nodebb" }, { role: "clusterMonitor", db: "admin" } ] } )
- 如果要在NodeBB的管理控制面板(高级→数据库)中查看数据库统计信息,请键入以下命令:
> db.grantRolesToUser("nodebb",[{ role: "clusterMonitor", db: "admin" }])
- 退出数据库
> exit
- 注册为服务
- 切换到之前开启 mongod
的窗口, 然后输入
Ctrl + C` 终止进程 - 在之前的指令后面加上
--auth --install
注册为服务
启动服务
net start MongoDB
三、nodebb
-
利用 Powershell 到一个你喜欢的位置,然后克隆 NodeBB 仓库,如:
$ cd D:\ $ git clone https://github.com/NodeBB/NodeBB.git
-
配置 NodeBB
$ ./nodebb setup
- 启动 NodeBB
.\nodebb start
大功告成!
四、Nginx (反向代理)
进入目录,编辑配置,把下面那段配置复制到 http
节下
server {
listen 80;
server_name 改成你要的域名;
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 注册成系统服务
- 访问https://github.com/kohsuke/winsw/releases 下载 Windows service wrapper 。
64位系统下载 WinSW.NET4.exe 32位系统下载 WinSW.NET2.exe
- 然后,把
WinSW.NET*.exe
重命名为mynginx.exe
后,移到和nginx.exe
同级的目录。
- 新建一个文本文档,改名为
mynginx.xml
,编辑它,加入下面的内容(记得替换对应的目录):
<service>
<id>nginx</id>
<name>nginx</name>
<description>nginx</description>
<logpath>C:\Users\a6320\scoop\apps\nginx\current</logpath>
<logmode>roll</logmode>
<depend></depend>
<executable>C:\Users\a6320\scoop\apps\nginx\current\nginx.exe</executable>
<stopexecutable>C:\Users\a6320\scoop\apps\nginx\current\nginx.exe -s stop</stopexecutable>
</service>
- 使用 cmd (具有管理员权限) 转移到 nginx 目录,然后输入
mynginx.exe install
安装它。
3. 启动 Nginx
$ net start nginx
4. 把域名解析至服务器,然后即可使用URL访问你的 NodeBB 了。
你可以在后台管理界面添加许多插件,实现更多功能:如QQ登录等等
挺有意思的,部署了一下,有兴趣的可以点过去玩一下 https://node.fpdan.cn/