经过一段时间的纠结,终于还是从wordpress转到了hexo,而过程也并没有想象中的艰难,毕竟hexo入手容易,还有插件辅助,关键是本来文章就不多,前后花了两天时间就完成了。在选择转移到hexo之前我也是纠结了很久,毕竟博客迁移可不是件容易事,但纠结了一段时间后,最终还是无法忍受wordpress的缺点——臃肿——而选择了迁移。

如何搭建hexo,可以参考:使用更轻量的hexo搭建个人博客。在使用了一段时间的hexo后,我写下了这篇文章。

什么是hexo

下面这个是hexo官方定义:

1Hexo 是一个快速、简洁且高效的博客框架。 Hexo 使用Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。

说白了就是hexo是一个已经搭建好的博客框架,文章该如何生成、该如何排版、网站标题和作者名字该怎么放,seo怎么优化等,hexo自己已经做了不少工作了,有这样一个框架就不用自己从<html></html>这样的网页源码开始做网页了。

这个定义中比较需要关注的几个点是:Markdown静态页面

为什么这么说呢,因为这对于我来说是hexo和wordpress最大的区别,也是我选择迁移到hexo最重要的原因,因为hexo可以从markdown直接生成文章,并且不需要MySQLPhp-fpm,这样的机制好处很明显,下面会提到。

为什么是hexo

这个老生常谈的问题估计许多人都回答过,但对新入坑的站长来说还是一个值得到处Google的问题,毕竟要换博客系统可是一件费时费力的事情,而且就怕费时费力还不讨好。

本站之前用的是wordpress,选择wordpress的原因也很简单:因为是新手。

新手有太多东西不懂,看到wordpress很多人推荐,而且推荐理由说服了我,所以就跟着入坑了。

开始用的时候当然很开心了,毕竟是第一次拥有自己的站点,然后就是开始做许多新站长都会做的事情:换主题,美化页面,侧栏添加音乐、天气等插件。

不过,可能wordpress上官方的审美和我不大合,在官方主题页面翻遍了也没找到一个满意的主题,之后断断续续找了半年时间也没找到一个喜欢的主题。

但让我拒绝wordpress的原因,除了找不到自己喜欢的主题之外,更重要的一点是:wordpress原生不支持markdown,这个问题一度困扰着我,毕竟我是markdown的忠实拥护者,已经快到没有markdown就不能写东西的程度了。

后来找到一个解决办法,就是本地用markdown写好文章,然后导出为.html文件,然后把网页代码粘贴到wordpress的html编辑框,但是这种办法麻烦不说,效果也不好,用了一段时间后就忍受不了了(至于为什么一段时间后才忍受不了……还不是因为懒),为此我安装试用了wordpress上众多的markdown插件,但由于wordpress本身写作页面的局限,从始至终也没找到一款令人满意的插件,而且由于网站加载速度慢,每次打开写作页面都需要好一会才能加载出写作框,写作体验就更糟糕了。

而这个时候开始了解到,除了wordpress外还有许多优秀的博客框架,也就开始萌生了换掉wordpress的想法。

这样又说到了压死wordpress的最后一根稻草:占用资源多,但响应速度却很慢

最后让我下定决心换掉wordpress的事情就是wordpress占用资源太多了。虽然wordpress只是博客框架,运行并不需要占内存,但是wordpress的运行需要MySQLPhp-fpm的支持,这可是两个内存大户,整个服务器里面内存占用第一的永远是MySQL,第二的就是Php-fpm,关键是Php-fpm有许多子进程,一个大概占用内存40M,10个左右常驻子进程就大概400M,所以实际上Php-fpm占用的内存更多,直接把服务器的512M内存撑爆,为此我还升级过一次服务器,将内存升为1G,但也只是堪堪可用,后来通过学习,开始优化Php-fpmMySQL,终于将系统内存总使用量控制在500M左右。

但吃了这么多资源、费了这么大周折优化的wordpress却没有给我带来足够的成果,网页打开速度极慢,而且访问量如果高一点,Php-fpm的子进程就会快速产生,1G内存岌岌可危,同时我又不想升级配置,原因很简单:这样的流量规模绝对不需要升级到更好性能的服务器。

于是开始考虑着手换掉wordpress,而最后选择hexo也是因为用户量相对较大,而且官方文档也看得懂。

换成hexo之后感觉如何

总的来说,换成hexo是正确的选择。

用上hexo之后,最大的感受就是占用资源变小了,网页加载速度却变快了,说出来你可能不信,系统总共占用的内存100M不到,闲时占用更低。

hexo内存占用情况.png

这样的内存占用主要归功于nginx,因为网站只需要nginx就可以跑起来,而nginx占用内存本来就很低,这样低资源占用带来的好处就是不用担心内存用完,而且还可以再跑一些东西,比如私人云盘,离线下载服务器,python脚本等,现在加上虚拟内存,一般内存占用已经不到500M了。

资源占用降低了,而hexo的网页加载速度却很快,因为是纯静态页面,也就是说网页都是已经生成好的html,收到请求直接返回html网页就可以了,基本不需要消耗CPU和内存,而wordpress的文章是存放在MySQL里面的,加载网页需要从MySQL里面生成,就算有缓存插件生成伪静态页面也快不过本身就是纯静态页面的hexo,这就使得网页加载速度的提升是肉眼可见的。

而且我是个懒人,不喜欢去倒腾插件,虽然wordpress插件丰富,但同时也有许多功能需要插件才能完成,可是找到一个好插件却并不容易,而且装太多插件还会进一步降低网站加载速度,而hexo的简洁高效正好满足了我的需求,该有的功能差不多都有了,最后只是加了几个js统计字数、添加文章目录和提供评论功能,仅此而已。

怎样用好hexo

刚开始用hexo需要了解不少事情,比如博客怎么发布,毕竟hexo是没有网站后台的,当然了,在此之前,需要找一个好看的主题,本站用的是yilia主题。

之后是制作404页面,或许还想要加上一些其他功能,比如评论系统,播放音乐,这些我会整理一个文章出来。

当然,博客美化这些华丽花哨的东西固然要有,但不该是重点,该有的必要功能有了就不要再折腾了,比如评论,404页面,最多加个阅读量统计和文章目录,其他的都不是必要功能,比如音乐播放器,当时费了一番周折才放上去的,发现基本没人用。

所以,折腾博客适可而止。

而换成hexo后,我也终于回归当初开始做博客的出发点:专注写作。