winserver +MongoDB 搭建 nodebb 论坛笔记

首先感谢@zhilian 小蓝提供的服务器

这不是上网课吗,闲着没事干就重操旧业,

我用nodebb搭建了一个学校社区

这是示意图

68b8e2f495cfe969b9bf3927a36dda3.png

57cd17ad2b35b13a4671964da10d0a3.png

8dda4c534f3882c3770f2a9a41c9e0d.png

一、环境

nodejs,MongoDB,nginx

Scoop(windows 管理器)

  1. 安装前请检查环境是否到位:
  • 系统: Windows 8.1+ / Windows Server 2012+
  • PowerShell v3+ (若您的 PowerShell 版本低于低版本, 请点击这里进行更新)
  1. 先熟悉一下大致流程
  • 打开一个 具有管理员权限的 Powershell 窗口(Administrative Shell)。

image.png

可以使用 Ctrl + Shift +Esc 唤起任务管理器。 然后新建任务时勾选 以系统管理权限创建此任务 (可能只有 Windows 10 或者 Windows Server 2016 支持此方法)

  • 添加脚本执行权限
$ Set-ExecutionPolicy RemoteSigned -scope CurrentUser
  • 执行安装脚本

    $ iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
    

image.png

  • 先安装 Git 以及 OpenSSH

    $ scoop install git
    $ scoop install openssh
    

image.png

  • 扩展一下, 添加仓库扩展
$ scoop bucket add extras
$ scoop bucket add versions

image.png

二、配置

1. Node.js

$ node -v
$ npm -v
$ yarn -v

image.png

如果都有版本号输出的话,那说明都安装成功了。

2. 数据库

2.1 MongoDB (推荐)

MongoDB 是一个比较优秀的 NoSQL 数据库。相比 Redis ,它更适用大型高负载的社区使用。

  1. 检测是否成功安装,输入下面的指令:
$ mongo --version

image.png

不出意外的话,你得到的结果应该和上图类似:

  1. 新建下面的两个文件夹 (D:\MongoDBD:\MongoDB\data

    image.png

  2. 在 PowerShell 中 输入:

    $ mongod --dbpath 'D:\Mongodb\data' --logpath 'D:\Mongodb\Mongodb.log'
    

因为路径中可能会出现空格,所以我们给dbpath>logpath 指定路径的时候需要加一个引号来避免字符串截断的问题。

image.png

  1. 为 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" } ] } )

image.png

  • 如果要在NodeBB的管理控制面板(高级→数据库)中查看数据库统计信息,请键入以下命令:
> db.grantRolesToUser("nodebb",[{ role: "clusterMonitor", db: "admin" }])
  • 退出数据库
> exit
  1. 注册为服务
  • 切换到之前开启 mongod的窗口, 然后输入Ctrl + C` 终止进程
  • 在之前的指令后面加上 --auth --install 注册为服务

image.png

启动服务

net start MongoDB

三、nodebb

  1. 利用 Powershell 到一个你喜欢的位置,然后克隆 NodeBB 仓库,如:

    $ cd D:\
    $ git clone https://github.com/NodeBB/NodeBB.git 
    

    image.png

  2. 配置 NodeBB

$ ./nodebb setup

image.png

image.png

  1. 启动 NodeBB
.\nodebb start

image.png

大功告成!

四、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";
    }
}
  1. 把 Nginx 注册成系统服务

64位系统下载 WinSW.NET4.exe 32位系统下载 WinSW.NET2.exe

  • 然后,把 WinSW.NET*.exe 重命名为 mynginx.exe 后,移到和 nginx.exe 同级的目录。

image.png

  • 新建一个文本文档,改名为 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登录等等