Hexo博客搭建HashOver评论系统
2020-11-15 更新:之前看fast.io每月100GB,就把图片迁移过去,谁知道取消了(填坑中...)。博客取消HashOver评论。
一、前言
最近无意中看到免费开源的HashOverPHP评论系统,看着不错,就试着自搭建评论系统。由于我的是静态博客,所以得安装php环境(PHP > 5.3.3 )。
二、HashOver安装和配置
1.安装
文件下载
下载之后解压在blog/source文件下,文件夹重命名为hashover。即路径为blog/source/hashover
2.配置
2.1配置域名、图片、数据库等
在blog\source\hashover\backend\classes\sensitivesettings.php
#需要使用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
# 这个需要更改默认的配置
// 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修改站点配置文件
skip_render 跳过指定文件的渲染。匹配到的文件将会被不做改动地复制到 public 目录中。您可使用 glob 表达式来匹配路径。
修改站点配置文件blog/_config.yml,添加/修改skip_render: “”。跳过对hashover文件夹文件的渲染
skip_render: ‘hashover/**/*’
2.2启用hashover评论
比如我的在blog\themes\default\layout_partial\article.ejs下添加js
js方式
<div id="hashover-body" class="mdui-m-t-5">
<script type="text/javascript" src="https://fungit.org/hashover/comments.php"></script>
</div>
异步加载
<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,要勾选使用不安全应用登录,要不会阻止登录
邮件搭建参考:
Hello World