今年4月决定正式搭建自己的博客,在尝试了几种主流的CMS后最终选择了Hexo,搭创建了此站点且持续了一个多月。后来因个人时间问题,加之没钱续费VPS(也写不出什么有价值的文章),便关停了。
如今又有了兴趣,参考了各路文档教程,使用Hexo & GitHub Pages/Coding Pages 几乎零成本的再次发布了这个站点。其中也遇到了不少坑(前后耗时大约半个月…),本文就吐槽一下。

坑1: 运行环境的选择

租不起5$/mo的VPS,只能把Hexo搭建在本地。不足之处就是每次写作都要打开这台电脑(不过配合Git 这个也不是问题了)
之前VPS的操作系统为Windows Server 2008 R2,本打算迁移至Linux平台,但因为种种原因最终还是妥协了。电脑上装的是Windows 10,而且是我的主力。我总不可能换成Linux吧。双系统又不能同时运行…

1.Linux虚拟机: 不想用CentOS,Debian又不太友好(而且手头的镜像也比较老,懒得再下载了),尝试安装Ubuntu Server在安装后半过程失败了,百度一波后没有收获(难道是我的CPU太老了吗)
2.WSL: 之前安装了Debian发行版的WSL,发现居然没有Python,学习Linux时都是用的CentOS啊,也没遇到过需要手动安装Python的情况,便求助于百度,搜索了一波后,发现还是略有难度的,再加上其他的各种问题(比如系统默认使用官方源,于是换源,Debian下的VI编辑器又有些鬼畜。于是装VIM,装个VIM下载都要几十分钟…)经受各种打击后,再加上本身对WSL有些疑虑,我最终放弃了这条路。

坑2: Coding Pages绑定自定义域名

一切都按官方文档的要求做了,但就是死活绑定不上自定义域名,且有机率打开奇怪的网站。后发帖求助于V2EX(问题详细描述可查看此主题),至今无人回复。过了一周后再次尝试,莫名好了。

坑3: CMD后台运行

在PC上安装好了必要的运行环境(Nodejs,Git)并安装了Hexo
于是高兴的从吃灰数个月的备份中解压出了博客备份(零碎文件数目多加之硬盘很渣解压了20分钟终于完事)
Git Bash Here > hexo server 博客便运行了起来。问题来了,这个终端不能后台运行,放在前台又太碍事,尝试使用RunHiddenConsole.exe(对付WNMP那套办法)不行。继续百度,有人说start /b,试了下,对Hexo没用,又尝试了其他的办法,无果。于是放弃,反正只是在写作的时候需要打开Hexo,忍了。

坑3: Git :No supported authentication methods available (server sent: publickey)

踩完了以上的几个坑就完了?这个最大的坑在等着我
博客已经可以正常运行了,下面要解决的问题是如何将静态页面部署到GitHub Pages/Coding Pages上
查阅了Hexo官方doc的部署方面的文档以及其他几篇Hexo&Pages教程
生成密钥对 > 添加公钥到GitHub > 测试ssh连接(成功) > 配置git个人信息> 安装hexo-deployer-git扩展 > 编辑Hexo _config.yml 的 deploy配置 > hexo g d
望着滚动的日志,我舒了一口气。提交完毕,就要部署到远程仓库的时候抛出了个错误:No supported authentication methods available (server sent: publickey)
???什么情况,之前ssh可以连接成功的啊,重试,不行。
于是测试了一下git pull,不行,看来和Hexo无关了。
继续searching发现也有一些人遇到了同样的问题,按照他们的方法尝试解决问题:

  • SSH Agent 不行
  • 编辑 etc/sshd_config 指定密钥文件 不行(而且直接提示Permission denied (publickey)了,甚至clone公共仓库也被拒绝,只好复原。)

尝试了GitHub Desktop客户端,能够正常pull
要不然只能手动复制public目录内的静态页面到仓库了?好麻烦啊。
依然没有放弃,继续搜索,又往复折腾了许久仍未解决问题。
最终通过Google搜索到了一篇发布于StackOverFlow的提问并参考回答顺利解决了问题(百度在这方面真没用)