Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

1. 环境说明

  • 博客框架: Hexo
  • 网站主题: Volantis
  • 评论系统: Disqus
  • 服务器: 阿里云ECS
  • 服务器系统: Ubuntu 24.04 LTS

2. 部署方式

Discuss由两部分组成: 服务端(后端服务) + 客户端(前端页面)。

Discuss的后端服务支持 服务器(Server) 和 无服务器(Serverless) 两种部署方式。因为我买了阿里云的ECS服务器,所以我选择了 服务器部署 方式,这样可以自己完全掌控整个评论功能。

3. 服务端部署

登录你的服务器,然后按照以下步骤进行部署操作。

3.1. 安装node.js

  1. 安装
1
2
# -y表示:在执行apt命令时出现的交互式口令会自动应答"yes"
sudo apt install -y nodejs
  1. 验证
1
2
node -v
npm -v

显示具体的版本号则说明安装成功。

如果npm未安装成功,可以手动执行以下命令来安装:

1
sudo apt install -y npm

3.2. 初始化Discuss后端项目

1
2
3
4
5
6
7
8
9
10
11
# 1. 创建你的Discuss后端代码的存放目录
mkdir -p /home/www/discuss_comment

# 2. 进入目录
cd /home/www/discuss_comment

# 3. 初始化npm
npm init -y

# 4. 安装Discuss
npm install discuss --save

3.3. 创建并编辑 index.js

1
2
const discuss = require('discuss')
discuss.server() // 服务器使用

3.4. 创建并编辑 .env 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# Discuss environment Config

# 启动的端口号(仅对服务器有用)
DISCUSS_PORT=6870

# Token 加密的密钥字符串([可选]自定义)
DISCUSS_SECRET=discuss

# 数据库连接

# 使用什么数据库
## 目前可选的数据库 [cloudbase, deta, leancloud, mongodb, mysql, postgresql, sqlite]
DISCUSS_DB_TYPE=mysql

# ------ MySQL ------
D_MYSQL_URL=mysql://username:password@host:port/database
# 例子:
# D_MYSQL_URL=mysql://spencer:xxxxxxx@localhost:3306/discuss_comment

username:password@host:port/database 替换成你的数据库连接信息。

  • 数据库的安装和配置,参见下一章: 《安装MySQL并配置子账户》
  • MySQL外,其他数据库的配置,参见: .env.example

3.5. 启动服务

1
node index.js

启动服务

3.6. 可能遇到的问题

我这边启动服务时遇到以下问题:

3.6.1. 问题1:端口占用

问题现象:

问题1:端口占用

问题原因:

可能你启动了多次服务,或者端口号6870已被其他程序占用了。

解决方法:

找到端口被占用的进程,把他kill掉。

1
2
3
4
5
# 查看端口被占用的进程
lsof -i :6870

# 杀掉进程
kill -9 PID

3.6.2. 问题2:No “exports” main defined

问题现象:

问题2:No "exports" main defined

问题原因:

可能是因为npm install的时候没有完整安装。

解决方法:

Discuss作者回复:

可以尝试清理以下npm缓存 npm cache clean --force,删除 node_modules 文件夹 rm -rf node_modules,然后重新安装依赖 npm install
如果按照以上步骤操作后仍然有错误的话,你可以试试将 index.js 内容改为

1
2
3
4
// index.js
const discuss = require('./node_modules/discuss/index')

discuss.server()

3.7. 让Discuss服务在后台一直运行

前面通过 node index.js 启动的服务,只会在当前命令行终端窗口中运行,当命令被中断或终端窗口被关闭,服务就停止了。

但我们的服务是需要服务器一直运行的,所以需要让Discuss服务在后台一直保持运行,可以使用forever工具。

  1. 下载 forever
1
2
3
4
5
# 全局安装
sudo npm install forever -g

# 验证是否安装成功
forever --version
  1. 启动服务
1
2
# 通过forever启动服务
forever start index.js
  1. forever相关命令
1
2
3
4
5
6
7
8
# 查看forever启动的服务
forever list

# 停止pid下的服务
forever stop [pid]

# 停止所有服务
forever stopall

4. 客户端部署

因为我用的Volantis主题,本身就支持Discuss的评论功能,所以前端的配置就会简单很多。

只需要在主题配置文件 _config.volantis.ymlthemes/volantis/_config.yml(取决于你启用的是哪个配置文件) 中,配置好Discuss的相关参数即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
comments:
title: <i class='fa-solid fa-comments'></i> 评论
subtitle:
service: discuss
# 可选评论系统 #

...

# Discuss
# https://discuss.js.org
discuss:
serverURLs: http://sunlogging.com:6870
visitStat: true # 是否显示文章阅读数
# https://discuss.js.org/Quick-Start.html#path

5. 初始化管理员账户

  1. 访问启动的服务地址,因为我的Discuss服务和网站静态页面的服务是部署在同一台ECS服务器的,所以直接访问我的网站域名+Discuss端口号即可:http://sunlogging.com:6870

初始化管理员账户

  1. 输入用户名、密码、邮箱进行管理员账户初始化。

  2. 账户初始化完毕后你可以在网站上使用评论功能了。

6. 评论管理系统

6.1. 登录管理系统

  1. 访问Discuss启动的服务地址(如:http://sunlogging.com:6870),或点击前端评论面板的“设置”按钮。

登录管理系统

  1. 输入用户名、密码登录管理系统。

登录管理系统

6.2. 评论管理

点击右上角“管理评论”按钮,进入评论管理页面。

评论管理

可以对评论进行 删除、评审、置顶 等操作。

6.3. 系统配置

点击右上角“管理配置”按钮,进入系统配置页面。

评论管理

可以对评论系统进行相关的配置,具体配置说明参见: Discuss配置管理

7. 参考文档

推荐阅读
博客建站10 - 选择博客评论系统 博客建站10 - 选择博客评论系统 博客建站11 - 安装MySQL并配置子账户 博客建站11 - 安装MySQL并配置子账户 博客建站2 - 选择网站服务器 博客建站2 - 选择网站服务器

评论