1. 环境说明
2. 部署方式
Discuss由两部分组成: 服务端(后端服务) + 客户端(前端页面)。
Discuss的后端服务支持 服务器(Server) 和 无服务器(Serverless) 两种部署方式。因为我买了阿里云的ECS服务器,所以我选择了 服务器部署 方式,这样可以自己完全掌控整个评论功能。
3. 服务端部署
登录你的服务器,然后按照以下步骤进行部署操作。
3.1. 安装node.js
- 安装
1 | # -y表示:在执行apt命令时出现的交互式口令会自动应答"yes" |
- 验证
1 | node -v |
显示具体的版本号则说明安装成功。
如果npm未安装成功,可以手动执行以下命令来安装:
1 | sudo apt install -y npm |
3.2. 初始化Discuss后端项目
1 | # 1. 创建你的Discuss后端代码的存放目录 |
3.3. 创建并编辑 index.js
1 | const discuss = require('discuss') |
3.4. 创建并编辑 .env 文件
1 | # Discuss environment Config |
把 username:password@host:port/database
替换成你的数据库连接信息。
- 数据库的安装和配置,参见下一章: 《安装MySQL并配置子账户》
- MySQL外,其他数据库的配置,参见: .env.example
3.5. 启动服务
1 | node index.js |
3.6. 可能遇到的问题
我这边启动服务时遇到以下问题:
3.6.1. 问题1:端口占用
问题现象:
问题原因:
可能你启动了多次服务,或者端口号6870已被其他程序占用了。
解决方法:
找到端口被占用的进程,把他kill掉。
1 | # 查看端口被占用的进程 |
3.6.2. 问题2:No “exports” main defined
问题现象:
问题原因:
可能是因为npm install
的时候没有完整安装。
解决方法:
Discuss作者回复:
可以尝试清理以下npm缓存
npm cache clean --force
,删除 node_modules 文件夹rm -rf node_modules
,然后重新安装依赖npm install
。
如果按照以上步骤操作后仍然有错误的话,你可以试试将 index.js 内容改为
1 | // index.js |
3.7. 让Discuss服务在后台一直运行
前面通过 node index.js
启动的服务,只会在当前命令行终端窗口中运行,当命令被中断或终端窗口被关闭,服务就停止了。
但我们的服务是需要服务器一直运行的,所以需要让Discuss服务在后台一直保持运行,可以使用forever工具。
- 下载 forever
1 | # 全局安装 |
- 启动服务
1 | # 通过forever启动服务 |
- forever相关命令
1 | # 查看forever启动的服务 |
4. 客户端部署
因为我用的Volantis主题,本身就支持Discuss的评论功能,所以前端的配置就会简单很多。
只需要在主题配置文件 _config.volantis.yml
或 themes/volantis/_config.yml
(取决于你启用的是哪个配置文件) 中,配置好Discuss的相关参数即可。
1 | comments: |
5. 初始化管理员账户
- 访问启动的服务地址,因为我的Discuss服务和网站静态页面的服务是部署在同一台ECS服务器的,所以直接访问我的网站域名+Discuss端口号即可:
http://sunlogging.com:6870
。
输入用户名、密码、邮箱进行管理员账户初始化。
账户初始化完毕后你可以在网站上使用评论功能了。
6. 评论管理系统
6.1. 登录管理系统
- 访问Discuss启动的服务地址(如:
http://sunlogging.com:6870
),或点击前端评论面板的“设置”按钮。
- 输入用户名、密码登录管理系统。
6.2. 评论管理
点击右上角“管理评论”按钮,进入评论管理页面。
可以对评论进行 删除、评审、置顶 等操作。
6.3. 系统配置
点击右上角“管理配置”按钮,进入系统配置页面。
可以对评论系统进行相关的配置,具体配置说明参见: Discuss配置管理