最近一段时间写点儿东西的欲望越来越强,但是面对 WordPress 实在是提不起劲儿,于是开始计划将 Blog 迁移到新的平台—— Ghost 。
之所以选择 Ghost ,一是自己比较熟悉 Node.js ,能够完全地控制整个 Blog;二是工作上有些简单的服务器运维却力不从心,打算借此机会好好熟悉一下;三是 Ghost 这个新兴项目很有潜力,众人期待的插件功能也即将发布,将来还会有更多好玩的东西……但最重要的是:Ghost 的默认主题太好看了!
于是花了三天晚上的时间,买了每月只需 $5 的 DigitalOcean VPS,从无到有地部署、迁移,简单修改了主题,终于搞定啦。
如何搭建 Ghost 的教程实在是太多了,这里就不重复了。简单介绍一下从 WordPress 迁移到 Ghost 的方法吧。
- 安装 WordPress 插件 Ghost 并启用,选择「Export」。它可以将你的 WordPress 文章、页面导出为 Ghost 识别的格式。
- 用文本编辑器打开导出的
wp2ghost_export_*.json
文件,将文章里的图片链接批量替换为类似/content/images/YYYY/MM/NAME.EXT
的形式。比如http://netputer.me/wp-content/uploads/2013/08/meow.jpg
就要替换为/content/images/2013/08/meow.jpg
。 - 访问
YOUR-GHOST-BLOG.TLD/ghost/debug/
并通过「Import」将文章导入。 - 将 WordPress 目录
/wp-content/uploads/
的所有文件全部迁移到 Ghost 目录/content/images/
下。至此,迁移基本完成了。 - 为了避免旧的文章或图片链接无法访问,还需要设置 URL 重写规则,这里以 Nginx 规则为例:
rewrite "^/\d{4}/\d{2}/([^/]+)/?(.*)$" /$1/$2 permanent;
rewrite "^/\d{4}/\d{2}/?(.*)$" /$1 permanent;
rewrite "^/\d{4}/?(.*)$" /$1 permanent;
rewrite "^/category/([^/]+)/?(.*)$" /$2 permanent;
# 根据相应的固定链接格式进行修改
rewrite "^/feed/?$" /rss/ permanent;
# 订阅了旧的 RSS 的订户依旧能够得到更新
rewrite "^/wp-content/uploads/(.*)$" /content/images/$1 permanent;
# 旧的图片链接也能够相对正常地访问
迁移过程大致如此,很多东西也是拼凑出来,很多细节需要打磨。不过,偷懒的最大借口已经没了,接下来就是写写写!