hiccLoghicc log by wccHipo日志

博客从wordpress迁移到Ghost

toc

Intro

Ghost不支持wordpress中的文章URL格式,又舍不得已经外链着的链接失效,也就一直没有将博客从积重难返的wp迁移到Ghost。

不过今天本着破罐子破摔、不折腾的会死,实在很想用markdown来写博客,不懂PHP……的精神一试,结果发现过程异常顺利^-^

迁移wp博客图片

这个地方讨巧的使用了七牛的云存储。

  • 注册七牛免费账户,
  • 安装七牛wordpress插件,配置,测试成功(访问你博客文章时,博文图片链接已是七牛链接)

通过这两步基本就可以确保你不用费力的转移图片,而且图片放七牛+CDN,节省空间,加速访问,何乐而不为?

导出wp中博文

安装配置Ghost

  • 我这边一直使用的digitalocean的最低配vps,5$/月,相对性价比较高推荐使用(上述链接为我的推荐链接,你使用会得到10$优惠,我自然也有收益,阿弥托福),使用的是do的一键安装Ghost,你也可以用其他方法安装,在此不再赘述。
  • 按照do官方教程配置域名等信息。
  • 首次访问配置Ghost登陆信息
  • 至此成功安装Ghost

导入wp博文

  • 在Ghost后台(/ghost/settings/labs/)导入之前导出的json格式的文章
  • 稍等片刻访问博客,应该可以正常访问啦~~

到这里,转移工作已近完成,客官也便可以散场啦,如果你的就wp文章访问数据还不错,或者博文有代码数据,下面的优化工作也建议做做。

兼容wp旧的博文链接

大多安装Ghost都会搭配nginx使用,可以使用nginx的反向代理兼容之前旧的博文链接,操作也很简单:

以hicc.me为例/post/promises-angularjs-explained-as-cartoon.html 是wp下的博文URL,转移之后变成/promises-angularjs-explained-as-cartoon/ 为了兼容,可以在nginx配置中加上下面的规则(感谢小乐帮忙)

rewrite ^/post/(.*)\.html /$1/ permanent;

类似tag的URL也建议兼容

rewrite ^/post/tag/(.*)/ /tag/$1/ permanent;

即可很好的解决转以后链接无法访问的问题,按照这个思路解决其他格式的URL问题,应该不难。

其他优化处理

  • 如果wp之前便在使用Disqus评论系统,转移之后还可以同样使用Disqus,并且Disqus有Redirect Crawler功能,可以实现评论的转移。
  • 配合七牛,又拍云等实现静态文件的云存储+CDN,可以参考http://birdgg.me/ghost-support-qiniu/,~~不过我没尝试成功,线上很难debug,之后再做处理,~~还可以在安装Ghost时候,直接安装http://www.ghostchina.com/提供的中文增强版,支持七牛,又拍云,等。
  • 如果你的访客在国内,建议停用Google font,网上的方法较旧,可以参考这篇文章,修复config.js文件重启Ghost即可。
  • 如果博文有代码,Ghost的wp导出插件对其支持并不完善,建议使用markdown语法手动修复,这些就属于体力活了。
  • 最后值得一提的Ghost从0.5.2之后默认支持Structured Data,也支持支持了twitter card的meta格式,不过你需要首先将你的域名添加到twitter card的白名单:很好添加,访问https://cards-dev.twitter.com/validator填入你的域名,它自会提醒你申请白名单,几秒钟便会成功,之后任何人分享你的博文,便会像下图一样将你的博文摘要直接嵌到twitter中(默认关闭)。

hicc.me twitter card

--

题图来自publicdomainarchive.com