将Hexo博客部署至腾讯云服务器

 |
总阅读量


  最近根据相关法律法规要求:域名在哪个云服务提供商备案就必须将该域名解析到云服务提供商的服务器,这波操作秀啊。这下白嫖了两年的Github Pages服务也用不了了,为了不放弃我这个域名。😐。弱弱地买了一个弱弱的学生(qióngbi)版低配服务器,花了一天时间将博客弱弱的部署到服务器上了。在这里总结一下自己踩的坑。

方法

  考虑到网上有很多写的不错的将Hexo博客部署到服务器的博客,我就不重复造轮子了。下面是一些我当时参考的博客的链接:

  只要一步步仔细跟着教程走,应该不会遇到问题。如果遇到了问题,可以参考博客下面评论区或者在搜索引擎上搜索。最后还是解决不了的话,可以请教周围的大神或者在教程博客评论区留言。感谢互联网,让我能站在巨人的肩膀上

踩坑->跳出坑

1.安装nginx中间的问题

在解压完 [nginx-1.15.2] 包后执行指令:

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_module

会出现类似于这样的错:

checking for OS + Linux 3.10.0-957.el7.x86_64 x86_64 checking for *** ... not found ./config

中间的*可以是任何软件,此时只需要手动安装那些软件即可,例如:

yum -y install gcc

2.万恶的403错误

  这个错误应该是相当玄学了,如果没有这个错,我一下午应该就部署好了。反思一下,其实自己一来对linux系统操作不精通,二来对Git操作也不精通,三来对服务器nginx了解也有限…大神的博客也不可能面面俱到,所以在自己知识有限的情况下,只能找寻前人解决的经验了。
  这个错误,我在试遍了评论区的方法后没有作用,后来不太清楚过程的最终解决了。所以现在只能模糊的猜测当时自己修改的条件。
  我在修改好本地的配置文件后,运行以下指令:

hexo cl && hexo g -d

在命令运行后并没有发生错误,我登录进服务器发现网站根目录并没有文件,在我用git上传成功的条件下,网站根目录并没有文件,这说明建立的裸露(bare)仓库的钩子(hooks)没有作用,这就有两个原因:

  1. 写的钩子,即linux脚本没有作用,可能没有执行权限。
  2. 用户git没有博客根目录的权限。

所以,我从这两个角度入手:
将教程中关于这两部分的步骤检查并重新进行了一遍,设置完后让服务器nginx 运行reload指令一下。之后我访问我的服务器的80端口,在失望透底之下竟然出现柳暗花明——访问成功了。


最终解释:写的钩子没有运行,在服务器手动运行一下折衷。还在找解决办法!


找到问题了,表示很无语。原来是那个钩子的名字必须是post-receive,当时自己可能太着急了,把文件名打错了。我错了。


之后的工作就是等域名的证书验证好了配置HTTPS


Ok,HTTPS配置好了,具体没有踩太大的坑。主要参考以下文章: