搭建hashover为hexo提供评论服务

hexo功能捣鼓里特意没有提到评论,就是为了自建评论系统.对,还是为了不被卡脖子,就不用第三方评论系统了第三方评论系统有disqus/gitalk/valine/waline/giscus等等. HashOver 不同的地方在于它是要放在你自己的服务器内。完全实现了自主可控.

部署hashover

hashover是一个基于php的服务端程序,我们需要找到一个开启了php服务的动态网站托管起来 去官网下载安装文件

下载之后解压在托管网站下 网站地址/hashover

hashover/admin/view-setup.php:67行代码有错误,修改如下 $language = file_exists ('docs/' . $language) ? $language : 'en-us';

同时此服务器上需要使用宝塔面板,新建一个评论数据库,供后面使用

hashover配置

打开 hashover/backend/classes/secrets.php 修改以下配置

class Secrets
{
// REQUIRED SETUP INFORMATION

// E-mail for notification of new comments
protected $notificationEmail = 'example@example.com'; //设置接收评论提醒的邮箱

// Unique encryption key (case-sensitive)
protected $encryptionKey = '8CharKey'; //设置一个key 必须修改

// Login name to gain admin rights (case-sensitive)
protected $adminName = 'admin'; //设置你评论管理的用户名

// Login password to gain admin rights (case-sensitive)
protected $adminPassword = 'passwd'; //设置你评论管理的密码

// OPTIONAL SQL INFORMATION

// Type of database, sqlite or mysql
protected $databaseType = 'sql'; //设置你评论系统的数据库类型

// Database name
protected $databaseName = 'hashover'; //设置为mysql后的数据库名

// SQL database host name
protected $databaseHost = 'localhost'; //设置为mysql后的数据地址

// SQL database login user
protected $databaseUser = 'root'; //设置为mysql后的数据库用户名

// SQL database login password
protected $databasePassword = 'a;lsjdf;aisuralsjdf;lk'; //设置为mysql后的数据库密码

// SQL database character set
protected $databaseCharset = 'utf8'; //这个还需要在解释一下的话,你就 不适合做站长

// OPTIONAL SMTP MAILER SETUP

// SMTP server host name //以下是邮件设置,默认使用 sendmail发送邮件,当你设置为smtp发送时下面的设置才会生效,当然,你可以在后台设置发送邮件的方式。
protected $smtpHost = 'smtp.gmail.com'; //SMTP地 址

// SMTP server port number //SMTP端口
protected $smtpPort = 465;

// SMTP server encryption method
protected $smtpCrypto = 'ssl'; //SMTP加密

// SMTP server requires login authentication
protected $smtpAuth = true;

// SMTP server user
protected $smtpUser = 'user'; //SMTP用户名

// SMTP server password
protected $smtpPassword = 'password'; //SMTP密码
}

打开 hashover/backend/classes/safesettings.php 修改以下配置

class Secrets
{
public $language = 'zh-cn'; // UI language, for example 'en_US',
public $passwordField = 'off'; // Commenter's password field,
public $websiteField = 'off'; // Commenter's website URL

}

打开 hashover/backend/classes/sensitivesettings.php 修改以下配置

class Secrets
{
public $dataFormat = 'sql'; // Format comments will be stored in;
public $mailer = 'smtp'; // How to send notification e-mails
public $requiresLogin = false; // Whether user must be logged

public $allowedDomains = array (
'托管网站',
'127.0.0.1'
// '*.example.com',
// '*.example.org',
// '*.example.net'
);
}

本地hexo配置

themes\next\layout\_partials\comments.njk第35行加上如下代码

<section class="hashover" id="comments">
<script type = "text/javascript">(function() {
var s = document.createElement('script'),
t = document.getElementsByTagName('script')[0];
s.type = 'text/javascript';
s.async = true;
s.src = "托管网站/hashover/comments.php";
t.parentNode.insertBefore(s, t);
})();
</script>
<div id="hashover"></div>
</section>