从升级Ghost博客到迁移Hexo文章
最近准备更新一些笔记到博客,Ghost博客后台总是提醒升级版本。我也是周末手贱,直接将Ghost 0.11.7升级到Ghost1.18.2。
按照官方给出的文档并配置ghost-cli的步骤,总是卡在后面的安装过程,各种出错。用gscan检查现有主题兼容性及备份主题文件夹;然后备份数据导出json;其他需要的node、Nginx、Mysql等。然后就是各种install不上,Ghost也算是自己给自己挖坑,上次用desktop写博客,导致博文乱码就被坑了一次。
幸好有备份,恢复到0.11的版本,结果博客莫名其妙跑不起来了,node index.js各种报错,吓坏我这个婴幼儿业余程序员了。
[root@localhost ghost]# ghost install
✔ Checking system Node.js version
✔ Checking current folder permissions
System checks failed with message: 'Linux version is not Ubuntu 16'
Some features of Ghost-CLI may not work without additional configuration.
For local installs we recommend using `ghost install local` instead.
? Continue anyway? Yes
✔ Checking operating system
Local MySQL install not found. You can ignore this if you are using a remote MySQL host.
Alternatively you could:
a) install MySQL locally
b) run `ghost install --db=sqlite3` to use sqlite
c) run `ghost install local` to get a development install using sqlite3.
? Continue anyway? Yes
✔ Checking MySQL is installed
✔ Checking for latest Ghost version
✔ Setting up install directory
☱ Downloading and installing Ghost v1.18.2 > Installing dependencies > [4/5] Linking dependencies...
尝试了三次,各种网上方式都试了,还是升级失败;恢复到之前版本,运行出错。我彻底服了,被坑了两次我是在无爱了。回想起Ghost刚推出的时候,豪言壮语要跌幅WordPress的体验,最近两年已经慢慢的没那么火热了。就想所有功成名就、开始赚钱的开源项目一样,一旦宣布商业化基本就是宣告平庸化。随着用Markdown记笔记越发熟练,前段时间双十一活动半价买了十分好用的MWeb编辑器,搭配之前用过的hexo托管页面到Github,也未尝不是一个好方案。
用Hexo搭建一个静态博客,每次写完后,把hexo的文件夹同步到Github上,再把hexo生成的public文件上传到自己的服务器上,就可以外网访问博客了。
Hexo的优势是?
- Markdown格式,方便本地保存及各种迁移
- 社区活跃,帮助文档和使用问题基本都能够google到解决方案
- 强大的NexT主题基本不用折腾就能满足搭个博客的所有要求
- 多地备份,随时迁移,如果Github墙了,很容易迁移到国内的Coding.net托管
迁移的代价
- 以你浪费一个周末。
从Ghost导出JSON内容
在Ghost的Lab页面一直保留了一个export按钮,导出后是包含所有文章以及一些元数据的JSON文件。当然对于图片等资源,由于我用的七牛的图片服务,所以基本不用做什么。如果是上传到服务器上的图片资源,则需要到assets文件夹下,打包从服务器上下载下来。
将博文导入Hexo
用现成的工具hexo-migrator-ghost轻松搞定。安装
npm install hexo-migrator-ghost --save
将导出的大JSON文件导入Hexo
hexo migrate ghost ghost-export.json
然后使用hexo generate
生成静态文件,hexo server
启动内置服务器,访问网址为: http://localhost:4000/
。就可以在本地看到新的博客效果了。
同步到服务器
在hexo根目录下的站点配置文件_config.yml
文件中,找到deploy模块,修改如下:
deploy:
type: rsync
host: 服务器IP地址
user: 登录名
root: 要同步的路径,比如/var/www/blog
port: ssh端口,一般为22,根据服务器情况
delete: false
这样,每次使用hexo deploy的时候,public目录会自动同步到服务器上。
配置Nginx到hexo博客
最后,之前服务器上已经部署Nginx,并配置为Ghost博客了。删除之前的conf文件,新增hexo.conf
server {
listen 80;
server_name www.arcpai.com;
root /var/www/blog/;
index index.html;
charset utf-8;
}
然后重启Nginx服务器,访问域名就可以看到hexo博客效果啦。
整个解决后,突然发现hexo思路理清后一切都是那么的简单,同时也很容易管理。当然后面有空在折腾下Github,用Git来管理。
最后
做一些必要的配置,
我还没做,后面抽空吧。