跃迁引擎

空気を読んだ雨降らないでよ

iOS Research & Development


Ghost 博客完善指南

本文主要介绍利用阿里云进行域名备案的详细流程,Ghost 博客接入 Disque、全站 HTTPS 配置、CDN 图床配置、汉化、代码高亮、修改字体等配置。

域名备案

为了让网站的域名能够正常的访问到,我们需要申请管局的备案,由于此前买的是阿里云的 ECS,所以直接使用阿里云来进行备案,步骤非常简单。而且最爽的是,你在阿里云进行备案,花费多长时间,就会送你多长时间的 ECS 使用时间,相当于免费的续费服务。

备案流程

1.验证备案类型:

填写部分主体和网站信息,系统将根据你所填写的信息,自动验证你要办理的备案类型。

2.产品验证:

对搭建备案网站的云服务器进行验证。

3.填写主体信息和网站信息:

填写网站信息以及办理备案的个人或者单位的真实信息,按照内容填写即可,详情参考

4.上传资料及真实性核验:

下载阿里云 APP,然后上传证件照片或证件彩色扫描件,并通过人脸识别完成真实性核验。完成这一步之后,就不需要再进行幕布拍照然后寄回去审核的繁琐步骤了。

5.信息确认:

完成备案信息填写及资料上传、真实性核验后,需要对所有信息做最终确认,以保证信息真实准确,避免备案申请被驳回。

6.备案初审:

备案申请信息提交后,阿里云将在 1 个工作日进行初审。需要保持备案信息中的联系电话畅通以便阿里云的工作人员与你核实信息,一般第二天就会给你打电话进行确认。

7.邮寄资料:

根据你提交的资料及各地管局的要求,有可能需要你按照系统指示邮寄资料至指定地点,不过一般都不需要。

8.短信核验:

天津、甘肃、西藏、宁夏、海南、新疆、青海、浙江、四川、福建、陕西、重庆、广西、云南、山东、河南、安徽、湖南、山西、黑龙江、内蒙古、湖北,这些省份的备案信息需要进行短信核验,你会在初审通过后的几小时内收到由 工信部备案系统 发送的验证码,进入短信提供的链接地址,输入验证码进行确认,需要在 24 小时之内完成验证,否则审核会被驳回。

短信验证完成后,备案申请流程自动提交至管局审核。

9.管局审核:

初审完成后,阿里云备案审核专员会将备案申请转交至对应管局处做最终的管局审核。管局审核通过后你的备案即已完成,审核结果会发送 短信邮箱通知,通知内会告诉你备案号及备案密码等信息。

备案申请信息成功提交至管局系统后,管局审核一般为 3~20 个工作日,不过一般都是一周左右,我大概是 8 天就收到了短信和邮件。

10.备案号显示在网站页脚:

备案通过后,需要在网站的页脚显示备案号,并链接到工信部的网站

复制下面代码,替换后插入网站页脚:

1
<a href="http://beian.miit.gov.cn/" style="color: #ffffff">  你的备案号</a>

Disque

如果你需要一个快速的方法来获得 Ghost 网站上的全功能评论,Disqus 是最适合的。

注意:虽然 Disqus 是免费的,但它在 2017 年被一家广告技术公司收购,可能会在您的网站上注入广告和广告跟踪器。

1.复制Ghost-Disqus评论代码

首先,将此 Ghost-Specific Disqus 评论代码复制到剪贴板上。这与 Disqus 通用代码不同,这是专门针对 Ghost 主题进行的定制代码段:

1
2
3
4
5
6
7
8
9
10
11
12
13
<div id="disqus_thread"></div>
<script>
var disqus_config = function () {
this.page.url = "{{url absolute="true"}}";
this.page.identifier = "ghost-{{comment_id}}"
};
(function() {
var d = document, s = d.createElement('script');
s.src = 'https://EXAMPLE.disqus.com/embed.js';
s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s);
})();
</script>

2.将注释代码粘贴到 post.hbs 中

进入主题文件夹,找到 post.hbs ,进入编辑:

basic
1
$ vim post.hbs

如果你使用的是默认主题 Casper,会看到专门为插入注释而保留的一行代码。这就是你要粘贴 Disqus 代码的地方:

注意:需要将第 65 行和第 69 行的注释删除。

3.找到你的 Disqus shortname

访问 Disqus Admin,创建一个站点或选择一个现有站点。从站点的设置区域中,找到shortname并复制它。

4.插入 shortname 到 Disqus 代码中

将下面代码中的 EXAMPLE 替换为你的 shortname

1
s.src = 'https://EXAMPLE.disqus.com/embed.js';

保存退出,重启 Ghsot 即可生效。

全站 HTTPS

Certbot (Let’s Encrypt) 是一个公共的免费 SSL 项目,使用简单方便,由 Mozilla、思科、Akamai、IdenTrust 和 EFF 等组织发起,Facebook 等大公司赞助,目的就是向网站自动签发和管理免费证书,以便加速互联网由 HTTP 过渡到 HTTPS。

选择反向代理服务器 & 系统

进入 官网,按下图箭头所示选择你的反向代理服务器和系统,我选择的是 Nginx 和 CentOS 7,请参照你自己的具体情况进行选择。

选择完成后会自动跳转到对应的文档,然后一步步按照文档说明操作,即可完成安装HTTPS 证书自动续订的工作。

1.SSH进入服务器

以具有 sudo 权限的用户身份 SSH 进入运行 HTTP 网站的服务器。

2.启用EPEL

按照 Fedora wiki 上的这些说明 启用EPEL

EPEL 包含在 CentOS Extras 存储库中,默认情况下已启用,为了保险起见还是安装检查一下:

1
$ yum install epel-release # 安装 EPEL

3.启用可选通道 (CentOS 系统跳过这一步)

只有使用的是 RHE L或 Oracle Linux,才需要启用可选通道。在 EC2 上,RHEL 用户可以通过运行以下命令启用可选通道,在命令中将 EC2 区域替换为 REGION:

1
2
$ yum -y install yum-utils
# yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional

4.初始化 Certbot

1
$ sudo yum install certbot python2-certbot-nginx

一路选择 y,直到出现 Complete!

这时你可能会看到一个 Failed 的失败提示:

1
2
Failed:
python-urllib3.noarch 0:1.10.2-5.el7

暂时忽略,在下一步中解决。

5.选择如何运行 Certbot & 获取并安装 HTTPS 证书

1
$ sudo certbot --nginx

该命令会获取一个 HTTPS 证书,并让 Certbot 自动编辑你的 Nginx 配置来支持 HTTPS。

这个时候你会收到一个报错信息:

1
ImportError: No module named 'requests.packages.urllib3'

这是 Python 的模块版本的问题,卸载现有版本的 requestsurllib3,然后重新安装:

1
2
3
4
5
6
7
$ pip uninstall requests
$ pip uninstall urllib3
$ yum remove python-urllib3
$ yum remove python-requests
$ yum install python-urllib3
$ yum install python-requests
$ sudo yum install certbot python2-certbot-nginx

再次执行:

1
$ sudo certbot --nginx

ok 没有了刚才的问题,继续刚才被中断的流程:

1
2
3
4
5
6
Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: shevakuilin.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 1

选择你准备配置 HTTPS 的域名,输入域名前的数字。

看到下列信息表示你的 HTTPS 已经全部配置完成了:

1
2
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://shevakuilin.com

在这段信息下面的 IMPORTANT NOTES 中,会列出你的证书安装路径,以及到期时间。

6. 自动续订 HTTPS 证书

为了安全起见,Certbot 默认的证书过期时间是 90 天,执行下面的命令,就不需要担心这一点了,会自动续订我们的 HTTPS 证书:

1
$ echo "0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew" | sudo tee -a /etc/crontab > /dev/null

7. 测试

现在你就可以测试你的 HTTPS 新网站了,测试配置地址:

1
https://www.ssllabs.com/ssltest/analyze.html?d=shevakuilin.com

shevakuilin.com 换成你自己的域名。

然后直接打开浏览器,输入你自己的域名,就能看到 HTTPS 的网站了。

DNS CAA

Todo…

CDN 图床

Todo…

汉化

Todo…

代码高亮

Ghost 默认是不提供代码高亮支持的,但是在后台提供了一个代码插入的配置入口 Code injection,可以在其中嵌入第三方插件的高亮代码。

highlight.js 为例,我们使用这个网站提供的 CDN,进入该网站后,选择你想要高亮的语言,注意:每个语言的高亮必须独立支持,也就是说,你没有相应语言的高亮代码,该语言就不会有高亮效果

设置 Code injection

首先进入你的 Ghost 后台,在浏览器中输入 域名/ghost,在设置里找到 Code injection

以我的高亮代码为例,在 Site Header 中填入:

1
<link href="https://cdn.bootcss.com/highlight.js/9.15.10/styles/monokai-sublime.min.css" rel="stylesheet">

Site footer 中填入:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<script src="https://cdn.bootcss.com/highlight.js/9.15.10/highlight.min.js"></script>
<script src="https://cdn.bootcss.com/highlight.js/9.15.10/languages/swift.min.js"></script>
<script src="https://cdn.bootcss.com/highlight.js/9.15.10/languages/objectivec.min.js"></script>
<script src="https://cdn.bootcss.com/highlight.js/9.15.10/languages/cpp.min.js"></script>
<script src="https://cdn.bootcss.com/highlight.js/9.15.10/languages/ruby.min.js"></script>
<script src="https://cdn.bootcss.com/highlight.js/9.15.10/languages/java.min.js"></script>
<script src="https://cdn.bootcss.com/highlight.js/9.15.10/languages/javascript.min.js"></script>
<script src="https://cdn.bootcss.com/highlight.js/9.15.10/languages/php.min.js"></script>
<script src="https://cdn.bootcss.com/highlight.js/9.15.10/languages/python.min.js"></script>
<script src="https://cdn.bootcss.com/highlight.js/9.15.10/languages/go.min.js"></script>
<script src="https://cdn.bootcss.com/highlight.js/9.15.10/languages/json.min.js"></script>
<script src="https://cdn.bootcss.com/highlight.js/9.15.10/languages/css.min.js"></script>
<script src="https://cdn.bootcss.com/highlight.js/9.15.10/languages/vim.min.js"></script>
<script src="https://cdn.bootcss.com/highlight.js/9.15.10/languages/shell.min.js"></script>
<script src="https://cdn.bootcss.com/highlight.js/9.15.10/languages/bash.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script>

然后保存设置。

使用

Swift 代码高亮为例,你只需要

1
2
3
​``` Swift
代码
​```

支持 LaTeX

借助 MathJax 可以轻松的在 Ghost 中插入各种基于 LaTeX 语法的数学公式。

MathJax 的特点:

  1. 使用 CSS 和 Web fonts 或者 SVG 实时渲染,而不是图片,因此在缩放上具有“矢量”优势。
  2. 适用于浏览器,只用引入一个 JavaScript 文件即可实现。
  3. 缺点是,过多的数学公式,可能会降低页面的加载速度。

使用

与设置代码高亮相同,在 Site Header 中加入:

1
2
3
<script type="text/javascript" async
src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML">
</script>

上面使用的是官方 CDN,也可以下载 JavaScript 文件到自己的服务器进行引用。由于 MathJax 会对页面加载速度有一定的性能损失,故不建议在整个博客中进行加载。可以在需要使用数学公式的 Markdown 文档的开通,直接引入即可。

修改字体

在浏览器中输入 域名/ghost进入后台,在设置里找到 Code injection

将你的字体添加到 Site Header

1
2
3
4
5
6
7
8
9
10
11
<!--  加载google字体 -->
<link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Droid+Sans+Mono">
<!-- 设置字体 -->
<style>
body,p,code,h1, h2, h3, h4, h5, h6,.hljs {
font-family: 'Droid Sans Mono', monospace;
}
.hljs {
font-size: 0.5em
}
</style>

字体库可以在谷歌的字体库里找。

自定义主题

Todo…

参考链接:
Certbot
Centosrhel7-nginx
How_can_I_use_these_extra_packages
centos7部署certbot 出现 requests.packages.urllib3 错误 的处理
Certbot提示requests.packages.urllib3解决
首次备案
使用MathJax在Ghost博客插入数学公式

最近的文章

两数之和 - 输入有序数组

利用「双指针对撞」、「二分查找」来解决有序数组的搜索问题,难度简单。 …

, , 开始阅读
更早的文章

如何在 CentOS 7 上搭建一个 Ghost 博客

Ghost 是一套基于 Node.js 构建的开原博客平台(Open source blogging platform),目标是取代臃肿的 Wordpress,界面简洁,专注写作,支持在线预览和在线写作。 …

, , 开始阅读
comments powered by Disqus