合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
>[danger] **弃用提醒:** > *由于看云对于免费用户的限制愈发严苛,本文档已经迁移至语雀。本文档将不做维护。* > **语雀地址**:[https://www.yuque.com/a632079/nodebb](https://www.yuque.com/a632079/nodebb) ***** # Windows >[info] 为了您的服务器安全,仅建议 windows 7/10 以及 Windows Server 2012/2016 使用本教程! [TOC] ## 一、准备 & 安装 >[danger] 根据群友的报告,NodeBB 或者 NodeBB 的 依赖 在 Windows 8 环境下运行时可能会出现错误。所以,我们不推荐在 Windows 8 (区别于 windows 8.1) 中继续下面的操作。当然,您也可以选择继续安装。 ### §1. Scoop ( windows包管理器 ) 1. 安装前请检查环境是否到位: * 系统: Windows 7+ / Windows Server 2003+ * PowerShell v3+ (若您的 PowerShell 版本低于低版本, 请[点击这里](https://www.microsoft.com/zh-CN/download/details.aspx?id=40855)进行更新) >[warning] 尽管 Scoop 支持 Windows Server 2003 & 2008 ,但这些系统不再安全了。为了您数据的安全,请将您的 Windows 服务器升级至 2012 或更高。 2. 先熟悉一下大致流程 * 打开一个 具有管理员权限的 Powershell 窗口(administrative shell)。 ![](https://box.kancloud.cn/f845c7adc5f1aa308c16ee67c7ed1c93_859x599.png) > 可以使用 `Ctrl + Shift +Esc` 唤起任务管理器。 然后新建任务时勾选 **以系统管理权限创建此任务** (可能只有 Windows 10 或者 Windows Server 2016 支持此方法) * 添加脚本执行权限 ```powershell $ Set-ExecutionPolicy RemoteSigned -scope CurrentUser ``` ![](https://box.kancloud.cn/250bf7ca0e9d5a24e983c24c6a2ad065_859x599.png) * 执行安装脚本 ```powershell $ iex (new-object net.webclient).downloadstring('https://get.scoop.sh') ``` ![](https://box.kancloud.cn/0ca449c2227e667c6557dd753471faa9_1102x798.png) >[info] Scoop 支持无管理员权限下安装软件, 但是我们依旧推荐以管理员权限执行操作 * 先把 Git 以及 OpenSSH 安装下 ``` $ scoop install git $ scoop install openssh ``` ![](https://box.kancloud.cn/7b936d74ca9d7dbc45b510226744c1f2_1105x802.png) * 扩展一下, 添加仓库扩展 ``` $ scoop bucket add extras $ scoop bucket add versions ``` ![](https://box.kancloud.cn/1c8560c1b4dee744449a04cd696860ce_496x142.png) ### §2. 安装 必要的工具 & 数据库 & Node.js LTS ``` #使用 具有Admin权限的Shell scoop install imagemagick github python27 yarn nodejs-lts scoop install mongodb # 使用 Mongodb 作为 储存器? scoop install redis # 使用 Redis 作为 储存器? scoop install nginx # 使用 Nginx 作为反向代理软件? ``` ## 二、配置 >[info] 在开始之前: Windows7 在使用 Scoop 安装完依赖后,可尝试使用 PowerShell 完成下面的操作。 ### §1.Node.js * 输入下面的指令以确认安装: ``` $ node -v $ npm -v $ yarn -v ``` ![](https://box.kancloud.cn/f7a9aa5f38cdb68bdc9d7b281c9bb24e_859x599.png) > 因为我使用的是 `nodejs` 包, 所以安装的是最新 Stable 版本。 正常情况下, 您的 nodejs 版本应为 `v8.x` ### §2.Databases #### MongoDB (推荐) MongoDB 是一个比较优秀的 NoSQL 数据库。相比 Redis ,它更适用大型高负载的社区使用。 1. 检测是否成功生效 输入下面的指令: ``` $ mongo --version ``` 不出意外,你得到的结果应该和下图类似: ![](https://box.kancloud.cn/98551fd28d6ccb7ff6ba144020e29010_859x599.png) 3. 新建下面的两个文件夹 (`D:\Mongodb` 以及 `D:\Mongodb\data`) ![](https://box.kancloud.cn/839e8250e934f703432b09c68523ab5f_798x550.png) 4. 在 PowerShell 中 输入: ``` $ mongod --dbpath 'D:\Mongodb\data' --logpath 'D:\Mongodb\Mongodb.log' ``` >[info] 因为路径中出现空格,所有我们给`dbpath`和`logpath`指定路径的时候需要加一个引号来避免字符串截断的问题。 ![](https://box.kancloud.cn/7f861e846fc680ae9ebf1f29ad905a28_837x79.png) 5. 为 NodeBB 安装 配置数据库(**详细 可参考 配置MongoDB 章节**) ![](https://box.kancloud.cn/d9e633eb10379c9a4da8ae0eb3125009_983x671.png) ![](https://box.kancloud.cn/c8740857255dcfea74c54b63a876849b_983x671.png) NaNundefined新开一个窗口, 输入 ``` $ mongo ``` ![](https://box.kancloud.cn/c1105f2627bd346084a0fbb2787f51c1_983x671.png) * 创建 Admin 账户 ``` > 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 ``` 6. 注册为服务 * 切换到之前开启 `mongod` 的窗口, 然后输入 `Ctrl + C` 终止进程 * 在之前的指令后面加上 `--auth --install` 注册为服务 ![](https://box.kancloud.cn/a112c47b7d820a4013eda8dc3e03d7f5_859x599.png) 7. 启动服务 * 使用 `Win + R` 输入 `service.msc` 打开服务管理器 ![](https://box.kancloud.cn/7a3b1970742e9eca2a4addcf73160184_513x272.png) * 找到 Mongodb, 启动服务 ![](https://box.kancloud.cn/c031a45a03612f1dd02d6fc8a9d4f035_1007x741.png) 验证: 是否能成功登录 (请参考 配置MongoDB 章) ----------- #### Redis >[danger] 目前 Microsoft 不再为 Redis 提供 Windows 版本的维护。 所以不建议使用 **Redis** 到生产环境。 如果您采用此方案, 可能需要自行解决部分问题。 >您可以 **[点击这里](https://github.com/MicrosoftArchive/redis/releases/download/win-3.2.100/Redis-x64-3.2.100.msi)** 获取 MSI 安装包直接安装 (推荐) * 创建两个目录 (`D:\Redis` 以及 `D:\Redis\data`) ![](https://box.kancloud.cn/ddf9a456910a06eaf72e828bc6ad78ed_1278x670.png) * 复制配置文件到 `D:\Redis` > 通常您的配置文件在 `C:\Users\您当前Windows登录的账户\scoop\apps\redis\current` 在 PowerShell 中输入: ``` $ cp C:\Users\替换成您当前登录的用户名\scoop\apps\redis\current\redis.windows-service.conf D:\Redis ``` ![](https://box.kancloud.cn/fe32596ba1ec08b66d38ed33f5fc9e29_983x599.png) * 使用 Notepad ++ 修改配置, 加入下面的配置项 >[success] 嗯, 我**没有安装**怎么办? 输入`scoop install notepadplusplus`安装它 ``` requirepass 替换为您的密码 rename-command FLUSHALL "" ``` ![](https://box.kancloud.cn/adfdb278dcd96b454aabb744444c3392_1080x788.png) * 我们还需要修改一下日记位置以及数据库位置 找到 `logfile`, 修改为: `D:\Redis\redis.log` 找到 `dir`, 修改为: `D:\Redis\data` ![](https://box.kancloud.cn/f395392ba870de35ba03b30e7201ff47_926x65.png) ![](https://box.kancloud.cn/be3df5c17b180c61bae0482c6066ace8_1027x200.png) * 注册为服务 在 PowerShell 中输入: ``` $ redis-server --service-install D:\Redis\redis.windows-service.conf --loglevel verbose ``` ![](https://box.kancloud.cn/fd2cce6f2031d2493852364801c5820f_983x599.png) > 可能会卡着无响应, 稍等片刻就好。 * 配置权限 >[info] 由于 Redis 默认以 Network Service 用户注册服务, 所以在访问非程序运行的目录时会提示无权限错误 老规矩, 我们使用 `Win + R` 输入 `services.msc` 启动服务管理器。 ![](https://box.kancloud.cn/4f396d3409033fdb49213947154d259e_1165x753.png) 1. 找到 `Redis`, 右键点击它, 选择 **属性**。 2. 选择 **本地系统账户**, **确认** 保存 * 启动服务 ![](https://box.kancloud.cn/9c363bb5660e1d73aecab8db5feb34d6_1007x741.png) 嗯, 这是一个成功启动的示例。 ![](https://box.kancloud.cn/669b6603e93bdefe70917e7e0b2ddd86_269x151.png) ### §3. NodeBB 1. 利用 Powershell 到一个你喜欢的位置,然后克隆nodebb库,如 ``` cd D:\ git clone -b v1.13.x https://github.com/NodeBB/NodeBB.git nodebb ``` >[info] 现在,你可以使用国内的镜像仓库(`https://gitee.com/qiai365/NodeBB.git`)来提高连接速度。 ![](https://box.kancloud.cn/a55397e93ef555cef78cc6921853fb16_983x599.png) 3. 配置 NodeBB ``` ./nodebb setup ``` ![](https://box.kancloud.cn/4bd9f18b8b68205de2b0b35196cfea12_983x599.png) ![](https://box.kancloud.cn/cf4ceb263d1f8ecb8b84137124eb153f_983x599.png) ![](https://box.kancloud.cn/a34517e2b7652aa847ec94dbd8915bf5_983x599.png) ![](https://box.kancloud.cn/120249ff48c6f7c82ef59ad1a0418a22_983x599.png) 4. 启动 NodeBB ``` ./nodebb start #CMD 使用: nodebb start ``` ![](https://box.kancloud.cn/a3fd1fc83986316a8d48b6579086a25b_1920x1030.png) Enjoy it! ### §4. Nginx (反代) 1. 配置 Nginx 首先确认你的 Nginx 版本: ``` nginx -v ``` >[info]截止 2018.08.03 从 Scoop 下载的 Nginx 版本为:`1.15.2` 然后我们进入目录,编辑配置,把下面那段配置复制到 http 节下(需要更多配置? 请参考 配置 Nginx 篇): ``` 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"; } } ``` ![](https://box.kancloud.cn/2c0dd96ca729399cbe38e0170e84bbc2_1278x670.png) ![](https://box.kancloud.cn/fe9b639ed5434b94882bba02127aaf89_1495x677.png) 2. 把 Nginx 注册成系统服务 访问 `https://github.com/kohsuke/winsw/releases` 下载 Windows service wrapper. >[info] 64位系统下载 `WinSW.NET4.exe` 32位系统下载 `WinSW.NET2.exe` ![](https://box.kancloud.cn/90e5c94a8f69df422b8641f3c9d3538e_1832x719.png) 然后,把 `WinSW.NET*.exe` 重命名为 `mynginx.exe` 后,移到和 `nginx.exe` 同级的目录 ![](https://box.kancloud.cn/799a5e30be7ba53a5bd146e550d229a9_1783x690.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` 安装它。 ![](https://box.kancloud.cn/f9ae6dd6b6bd0c3902e1bb5c7cce22f7_1636x747.png) 3. 启动 Nginx ![](https://box.kancloud.cn/fbe6911cfd35daa37239ed585e881fcb_820x600.png) 4. 把域名解析至服务器,然后即可使用URL访问你的 NodeBB 了。 ----------------------- >[info] 编写: a632079 维护: a632079 审核: PA Team 最后更新: 2019.12.07