低成本打造独立博客之高阶篇

上一篇 低成本打造个人独立博客 主要介绍了博客的搭建过程,适合从零开始的朋友。

我周围有一些曾经写过博客的朋友,希望和我一样从 wordpress 迁移到 Github Pages。这样的情况需要注意到:

  1. 需要保留原有的博客文章
  2. 需要保留原有的域名

那么我们就分以下几个部分来逐一说明

1. 本地备份

上次的文章都是在 Github 上操作,其实也完全可以本地操作完了以后再部署到服务器上。你可以认为 Github Pages 就是一个服务器。由于本次迁移工作在 Github 上操作将会非常复杂,因此我们采用先把 Github 上的内容备份到本地,修改完成后再发布到 Github上的方式。

这里面需要了解一些 Git 的知识,请自行搜索。如果不管那么多,请先下载 Git 并安装。

1.1 安装 Git

1.2 克隆仓库到本地

安装好 Git 之后,打开命令行工具。不知道命令行工具为何物,请自行搜索。

无论是 Mac 还是 Windows 都自带命令行工具,请找到它们并打开。

此时打开Github,并找到你的博客仓(不知道的看上一篇文章),在仓库主页找到一个绿色的按钮 Clone and download,点开后看下浮窗的右上角是 use SSH 还是 use HTTPS。如果是 use HTTPS的话,请点一下。别问为什么,用 SSH 方式还要配置 keygen ,你肯定不会。

可以发现浮窗的中间有一个文本框,里面有一长串的地址,文本框最右边剪贴板📋的图标,点击一下复制你的仓库地址。

切换到之前打开的命令行窗口,输入

1
git clone 刚才复制的仓库地址

比如说我自己的博客就是

1
git clone https://github.com/tortorse/tortorse.github.com.git

回车执行这段命令,稍微等待一会,你的博客就被保存到本地了。

保存到哪里去了呢?请看下命令行,你输入命令的前面就是存储的位置,比如我的

1
d:\blog>

如果你用的是Mac,那么请在命令行里输入

1
pwd

回车之后,屏幕上显示的即是当前目录所在,记住这个目录,后面会用到。

好了,现在已经把仓库备份下来了。为了以后方便,还是请安装一个图形化的Git 工具,比如 SourceTree

2. 从 wordpress 迁出

wordpress 里的旧博客文章,如果不做特殊处理的话,那都是存储在服务器上的MySQL 数据库里的。那么我们需要将其先备份/导出。打开原来旧的 wordpress 后台,一般是 http://你的域名/wp-admin

2.1 安装jekyll插件

登录之后找到插件 菜单,选择安装新的插件,搜索 jekyll,你会发现一个叫做 jekyll exporter 的插件,点击 安装

2.2 导出文章

找到 工具 菜单, 在里面找到 export to jekyll ,点击后会自动下载。下载完成后解压缩,你会发现你的文章都已经被转成了 .md ,并且原有的附件都存在 wp-content 文件夹下面。把解压后的文件夹保管好,后面会用到。

3. 绑定域名

回到 Github,进入你博客所在的仓,点击 Settings,找到 Github Pages部分,在Custom domain里面填入你博客的地址,注意不要是顶级域名。不要问我为什么,谁试谁知道。比如我的博客就填入 www.tortorse.com。暂时不要勾选 Enforce HTTPS, 因为我们还没做域名指向,勾了也没用。

现在打开你域名服务商的后台,找到DNS解析的部分。将原来的 A 记录改为以下里面的任意一个:

  • 185.199.108.153
  • 185.199.109.153
  • 185.199.110.153
  • 185.199.111.153

如果你的DNS解析支持负载均衡,你可以把4个地址都加上。

然后再添加一个 wwwCNAME 记录,指向到 你的github用户名.github.io,比如我的就是 tortorse.github.io

这样设置完以后,域名就算绑定了。稍微等一会儿,域名生效需要一些时间。

这时候访问你的自定义域名,看看是否已经转到了博客。比如我的自定义域名是 www.tortorse.com,访问以后会发现已经到了新的博客。也可以本地用命令行 ping 一下自己的域名,看看是否已经到了 185.199.108.153 这样的IP

4. 启用HTTPS

Github Pages 可以直接帮你的域名生成SSL证书,而且还免费。非常爽快的回到Github 里的 Setting 里勾上那个Enforce HTTPS。这时候你的博客就可以通过 HTTPS 访问了。

5. 旧文章导入

把 2.2 里提到的文件夹里的所有内容复制到 1.2 提到的文件夹下的 _posts 目录里,然后在命令行里输入

1
2
3
git add _posts/* //把文件加到暂存区
git commit -m "博客迁移"
git push

稍微等一会儿,打开你的博客,看看是不是都迁移过去了?

6. 延伸

  1. 本地调试 jekyll 的话需要安装ruby
  2. Git 的操作可以使用 SourceTree
  3. 活用 ping dig 等网络命令来验证域名是否绑定成功