oimi分享美好数字生活 oimi分享美好数字生活
  • 首页
  • AI
  • Lab
  • Apple
  • 生活方式
  • 硬件
  • 1
  • 0

Debian 8.x / Ubuntu 16.04.x 搭建 Isso 评论系统教程

OIMI
8 5 月, 2017

由于某说要关闭,某言对 HTTPS 支持不友好,某易必须登陆才可以且在国外访问卡出翔,剩下国产的服务都一般,而国外服务 Disqus 是个不存在的网站并且会加载一大堆追踪的 JS,对于有洁癖的博主来说,全世界第三方评论系统基本没有一个好用,所以我们可以考虑自己搭建 Isso 评论系统

Isso 是基于 Python 写的一套评论系统,用途就是代替以上说的第三方不靠谱平台,而官网的教程坑很多,新手没有接触过运维工作安装起来难度较大,所以我就整理一下基本的教程,尽量可以让所有用户都能自行搭建评论系统

本文所有操作均在 root 用户下进行,请自行切换

首先,更新系统

apt-get update && apt-get upgrade  

如果您用的 Debian 8.x 开启了 backports 也可以更新下

apt-get -t jessie-backports update && apt-get -t jessie-backports upgrade  

1、安装 PIP

pip (Python Package Index) 是 Python 软件包管理系统,简单方便省去自己编译安装的各种麻烦

首先,我们安装一些必要的工具包

apt-get install python-dev build-essential -y  

然后直接安装 pip

apt-get install python-pip  

接着更新升级 pip

pip install --upgrade pip  

pip 的常见用法

安装 / 升级某软件

pip install --upgrade <package name>  

卸载某软件

pip uninstall <package name>  

搜索某软件

pip search <search query>  

获取某软件信息

pip show <package name>  

2、安装 Isso

一条命令即可

pip install isso  

此时 isso 已经被完整安装在 /usr/local/bin/isso 了

3、安装 SQLite3

由于 Isso 用的是 SQlite3 数据库,我们需要安装

apt-get install sqlite3  

如果 Debian 8.x 开启了 Backports ,可以用如下命令

apt-get -t jessie-backports install sqlite3  

新建立一个数据库目录并设置权限

mkdir -p /var/lib/isso  
chown isso:isso /var/lib/isso -R  

4、配置 Isso

新建立一个 conf 文件,比如 /etc/isso.conf 演示内容如下

[general]
dbpath = /var/lib/isso/comments.db  
name = example  
host = http://example.com/  
       http://example.org/
notify = smtp  
log-file =

[server]
listen = http://localhost:8090/

[moderation]
enabled = true  
purge-after = 30d

[smtp]
username = username@example.com  
password = password  
host = smtp.example.com  
port = 587  
security = starttls  
to = 你的邮箱地址  
from = "Isso Comment"<username@example.com>  
timeout = 10

[markup]
options = strikethrough, superscript, autolink  
allowed-elements =  
allowed-attributes =

[guard]
enabled = true  
ratelimit = 3  
direct-reply = 3  
reply-to-self = false  
require-author = true  
require-email = true

[hash]
salt = Eech7co8Ohloopo9Ol6baimi  
algorithm = pbkdf2  

按照官方的配置文件,我们来一条一条说明

[general] 是基本配置,必须填写

dbpath 就是数据库文件,刚才我们已经建立了 /var/lib/isso/ 目录,所以他会自动生成 *必填

name 是这一个配置文件的名字,如果本地只搭建一个 Isso 的话可以忽略,搭建多个 Isso 的话需要设置 *可选

host 是你引用 Isso 的 JS 的网站地址,需要写全,如果有多个的话就多加几行,只有一个域名的话留下一个即可 *必填

notify 评论审核通知方式,如果不开启审核可以不设置,设置了 SMTP 就需要在下面的 [smtp] 设置邮件发送方式 *可选

log-file 记录日志,后续我们会提到,一般不需要开启

[server] 本地服务端设置

listen 需要监听的端口,可以自定义,这里我们用 8090 为例

[moderation] 是否开启评论审核,不需要的话可以写 enabled = false

purge-after 指定多少时间后删除还在审核队列里的评论

[markup] 是 Misaka Markdown 插件

options 可选 strikethrough, superscript, autolink 比如不需要自动加入超链接可以去掉 autolink

allowed-elements 评论开启 HTML 标签,默认允许的标签有 a, blockquote, br, code, del, em, h1, h2, h3, h4, h5, h6, hr, ins, li, ol, p, pre, strong, table, tbody, td, th, thead 和 ul 可以根据自己情况修改

allowed-attributes 评论开启 HTML 标签的属性,默认只允许 align 和 href

[smtp] 审核评论发送邮件通知的设置,具体可以咨询你使用的邮件服务,按服务商提供的配置填写即可,不再详细描述

[guard] 开启评论防火墙,如不需要可以填写 enabled = false

ratelimit 每个访客一分钟最多可以评论的次数

direct-reply 评论回复次数

reply-to-self 是否可以回复自己的评论,需要配合 JS 引用,下面会说

require-author 是否要求写名字,需要配合 JS 引用,下面会说

require-email 是否要求写 Email 地址,需要配合 JS 引用,下面会说

[hash] 加密评论的身份方式,如 Email 地址,没有特殊需求可以忽略

详细的解释可以参考官方的文档,如果没有特殊的需求,也不需要审核评论,直接可以上一份最简单的配置文件,如下

[general]
dbpath = /var/lib/isso/comments.db  
host = http://example.com/

[server]
listen = http://localhost:8090/

[moderation]
enabled = false  

保存这个文件之后,就可以启动 Isso 看输出消息是否正常

isso -c /etc/isso.conf run  

没有报错消息则说明你的配置文件木有问题,按 ctrl + c 停止 Isso

5、安装 Nginx 并配置

Ubuntu 下可以用 PPA,详见《Ubuntu Server 16.04.x (Xenial Xerus) 安装 LEMP / LNMP 教程》

Debian 下可以用 Dotdeb,详见《Debian 8.x “jessie” 使用 Dotdeb 安装最新版本 LEMP / LNMP》

然后安装 Nginx

apt-get install nginx  

Nginx 配置文件举例如下, Isso 会反代在 example.com/isso 目录

server {  
        listen 80;
        listen [::]:80;

        server_name example.com;        

        location /isso {
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Script-Name /isso;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_pass http://localhost:8090;
        }
}

检查 Nginx 配置并重新加载

nginx -t  
nginx -s reload  

6、安装 Supervisor 并配置

Supervisor 是一款进程守护软件,目的是保持 Isso 在后台运行

因为前面已经安装了 pip,所以直接 pip 安装即可

pip install supervisor  

生成一份 supervisord.conf 我们举例放在 /etc/supervisord.conf

echo_supervisord_conf > /etc/supervisord.conf  

修改 /etc/supervisord.conf 文件,在最后面加入

[program:isso]
command = /usr/local/bin/isso -c /etc/isso.conf run  
directory = /var/lib/isso  
user = isso  
autostart = true  
autorestart = true  
stdout_logfile = /var/log/supervisor/isso.log  
stderr_logfile = /var/log/supervisor/isso_error.log  
environment = LANG="en_US.UTF-8"  

生成日志目录

mkdir -p /var/log/supervisor  

然后启动 Supervisor

supervisord -c /etc/supervisord.conf  

如果没有报错,则可以测试 Isso 是否正确运行

curl http://example.com/isso/  

如果返回下面结果,则一切正常

root@example ~ # curl http://example.com/isso/  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">  
<title>400 Bad Request</title>  
<h1>Bad Request</h1>  
<p>missing uri query</p>  

如果返回的是 502 Bad Gateway 错误,那么你需要仔细检查日志 /var/log/supervisor/isso_error.log 以及所有的配置文件

接着把 Supervisor 加入开机运行,编辑 /etc/rc.local 文件,在 exit 0 前面加入一行 supervisord -c /etc/supervisord.conf 即可

7、在网站引用评论

根据官方文档,直接引用一段 JS 即可,具体参数根据需求自行调整

<script data-isso="http://example.com/isso/"  
        data-isso-css="true"
        data-isso-lang="en"
        data-isso-reply-to-self="false"
        data-isso-require-author="false"
        data-isso-require-email="false"
        data-isso-max-comments-top="10"
        data-isso-max-comments-nested="5"
        data-isso-reveal-on-click="5"
        data-isso-avatar="true"
        data-isso-avatar-bg="#f0f0f0"
        data-isso-avatar-fg="#9abf88 #5698c4 #e279a3 #9163b6 ..."
        data-isso-vote="true"
        data-vote-levels=""
        src="http://example.com/isso/js/embed.js"></script>

data-isso Isso 安装的 URI

data-isso-css 使用默认的 CSS 如果需要自己改 CSS 则设置成 false

data-isso-lang 默认语言,参考 ISO 639-1 编码,可选语言列表在这儿

data-isso-reply-to-self,data-isso-require-author,data-isso-require-email 需按照 Isso 配置文件来,请保持一致

data-isso-max-comments-top 一页显示的评论数

data-isso-max-comments-nested 最多嵌套评论数

data-isso-reveal-on-click 超出评论数后点击显示的评论数

data-isso-avatar 显示头像

data-isso-avatar-bg 头像背景

data-isso-avatar-fg 头像颜色

data-isso-vote 开启评论的支持和反对

data-vote-levels 评论支持和反对的等级算法,具体请参考官方的文档

如果没有特殊需求,直接来一行

<script data-isso="http://example.com/isso/" src="http://example.com/isso/js/embed.min.js"></script>  

接着在你网站适当的位置加入一个 section 标签即可

<section id="isso-thread"></section>  

如果你网站有多个域名,可以固定当前页面的 URI 和标题,很适合 WordPress 等程序的用户,只有一个域名的忽略即可

<section data-title="当前标题" data-isso-id="当前URI" id="isso-thread"></section>  

好了,大功告成,具体演示可以看本文的评论

本文转载:Showfom

1
利用阿里云OSS bucket挂载在阿里云ECS本地文件系统,达到高效传输
上一篇
体验小幅提升:苹果iOS11开发者预览版Beta2更新内容和已知问题大全
下一篇

评论 (0)

再想想
暂无评论

聚合文章

理想星环OS开源项目
亚马逊云科技部署DeepSeek模型
重磅发布:Windows/Office被国外大神破解,全部离线永久激活!
OOMOL Studio 免费、底层开源
DeepSeek开源周首日推出FlashMLA项目 可以显著降低内存占用和计算开销
DeepSeek-R1 发布,性能对标 OpenAI o1 正式版
HEU KMS Activator v42.3.2
Windows/Office通用激活神器MAS v2.9版发布
2024年12月,Windows11 24H2官方原版ISO的系统版本号为26100.2605
小米官方发布「米家集成」,可在 Home Assistant 中使用小米 IoT 智能设备

Android 11 Apache Apple M1 Aria2 AWS Route53 Calm CDN ChatGPT Cloudflare CloudXNS CNNIC Debian Debian 9 Debian 9 Stretch DNS DNSpod Domain Name System gdnsd Google Play HEU KMS Activator iOS 11 iOS11 Beta2 iOS11 Beta2 update1 LEMP Let’s Encrypt LNMP macOS MySQL Nginx OEM PanDownload PHP Postgres PowerDNS PowerDNS-Admin Pure DNS Spectre SQLite3 Stretch Windows 11 24H2 Youtube 公共DNS 数字许可证激活 自控力 降级iOS10

猜你喜欢

分析薇娅等几十个视频号后,我总结出内容创作干货

分析薇娅等几十个视频号后,我总结出内容创作干货

23 4 月, 2020
1,771 0 0
Quibi 想做你的蹲坑追剧神器

Quibi 想做你的蹲坑追剧神器

16 4 月, 2020
1,891 0 1
Zoom 的烦恼

Zoom 的烦恼

16 4 月, 2020
2,381 0 0
BaiduCDP 是使用C/C++写的一个百度网盘高速下载工具

BaiduCDP 是使用C/C++写的一个百度网盘高速下载工具

5 3 月, 2019
4,902 0 0
1

关于

OIMI(oimi.me)是分享美好数字生活的内容平台,同时还涉及 macOS、iOS 等知名系统的使用技巧。 科技 / 旅行 / 摄影 / 生活方式

社交媒体

Nicky

导航

Nicky
Copyright © 2016-2025 oimi分享美好数字生活. Designed by OIMI.
  • ChatTTS,HyperOS,HEU KMS Activator,Win10/11数字权利激活

OIMI

258
文章
2
评论
135
喜欢