一、前言

​ 最近无意中看到免费开源的HashOverPHP评论系统,看着不错,就试着自搭建评论系统。由于我的是静态博客,所以得安装php环境(PHP > 5.3.3 )。


二、HashOver安装和配置

1.安装

文件下载

下载之后解压在blog/source文件下,文件夹重命名为hashover。即路径为blog/source/hashover

2.配置

2.1配置域名、图片、数据库等

在blog\source\hashover\backend\classes\sensitivesettings.php

1
2
3
4
5
6
7
8
9
10
11
12
13
#需要使用MySQL数据库,需要$dataFormat 改为sql
// Primary settings
public $dataFormat = 'sql'; // Format comments will be stored in; options: xml, json, sql
public $defaultName = 'Anonymous'; // Default name to use when one isn't given

# 域名配置
// External domains allowed to remotely load HashOver scripts
public $allowedDomains = array (
// '*.example.com',
// '*.example.org',
// '*.example.net'
'*.fungit.org'
);

2.2数据库连接、用户登录信息配置

在blog\source\hashover\backend\classes\secrets.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 这个需要更改默认的配置
// Unique encryption key (case-sensitive)
protected $encryptionKey = 'KKKKKKK';

// Login name to gain admin rights (case-sensitive)
protected $adminName = 'admin';

// Login password to gain admin rights (case-sensitive)
protected $adminPassword = 'pwassd';

# 数据库配置
// OPTIONAL SQL INFORMATION

// Type of database, sqlite or mysql
protected $databaseType = 'mysql';

// Database name
protected $databaseName = 'hashover';

// SQL database host name
# 如果在同一台,建议优先用localhost
protected $databaseHost = 'localhost';

// SQL database port number
protected $databasePort = '3306';

// SQL database login user
protected $databaseUser = 'hashover';

// SQL database login password
protected $databasePassword = 'un8932&&R(Mi#*RDU(IE))';

// SQL database character set
protected $databaseCharset = 'utf8';

三、Hexo博客启用HashOver

1.1修改站点配置文件

1
skip_render	跳过指定文件的渲染。匹配到的文件将会被不做改动地复制到 public 目录中。您可使用 glob 表达式来匹配路径。

修改站点配置文件blog/_config.yml,添加/修改skip_render: “”。跳过对hashover文件夹文件的渲染

1
skip_render: ‘hashover/**/*’

2.2启用hashover评论

比如我的在blog\themes\default\layout_partial\article.ejs下添加js

js方式

1
2
3
<div id="hashover-body" class="mdui-m-t-5">
<script type="text/javascript" src="https://fungit.org/hashover/comments.php"></script>
</div>

异步加载

1
2
3
4
5
<div id="hashover-body" class="mdui-m-t-5">
<div id="hashover"></div>
<script type="text/javascript">(function() { var s = document.createElement('script'), t = document.getElementsByTagName('script')[0]; s.type = 'text/javascript'; s.async = true; s.src = "https://fungit.org/hashover/comments.php"; t.parentNode.insertBefore(s, t); })();
</script>
</div>

ps:注意,路径问题。src=“”,我填的是绝对路径

四、邮件通知

按照教程配置的smtp,不知道为什么没有成功。目前评论没有邮件通知功能。由于vps功能受限,就不折腾了

现在已经正常邮件回复,之前使用office 365,估计还不支持starttls加密协议。使用gmail,要勾选使用不安全应用登录,要不会阻止登录

邮件搭建参考: