Featured image of post 搭建博客

搭建博客

博客搭建也太难了!!!!!!!!!!! 整整花了两天时间,终于把博客搭建起来了。以后就是折腾主题,插件,等等等等…… 这篇文章将回顾两天以来我的“冒险”,我是怎么把这个博客修起来的。

搭建博客Day1,2021.1.8

这一天开始搭建博客。选用的是hexo,nginx,letsencrypt三件套;部署位置在我的WingerBlog上。第一版我根据这个文章来进行,试图把所有东西装到一块。但是装到一半的时候遇到了问题:进行到“Paste the following code in it.”这一步时,nginx -t 报了一个错误:

1
2
Error: ssl_certificate /etc/letsencrypt/live/hexo.example.com/fullchain.pem; No such file or directory.
Error: ssl_certificate_key /etc/letsencrypt/live/hexo.example.com/privkey.pem; No such file or directory.

(不仅是这个,其中 ssl_ciphers 最后还没有加上分号,导致我苦恼了好长时间) 研究之后发现是没有安装ssl证书,原作者把这两个的顺序搞反了,导致安装不成功。解决方法是找了一个nginx安装ssl的教程,跟着教程配置了certbot装载ssl。这时候才发现,只需要跟着一步一步走就好,certbot会配置好想要的hexo.conf文件。

这个文件位于/etc/nginx/sites-available/hexo.conf,里面是nginx启动这个网站的所有配置参数。其中root /var/www/hexo/public 这一行是最关键的一行,root是指网站根目录的位置,后面是 ~网站根目录的位置~ ,这个位置下面有生成的index.html文件

解决了ssl问题之后,就开心的装好了整个hexo。

常用的hexo命令 Part1:(指令全部需要在hexo根目录里执行?)

  • 创建新的post:hexo new "name_of_the_post"

    这条指令将在 _drafts 文件夹中新建一个名字为 name_of_the_post 的 .md 文件和文件夹

  • 发布一个post:hexo publish "name_of_the_post"

    这条指令将把 _drafts 文件夹内的 name_of_the_post 文件移动到 _posts 文件夹中等待发

搭建博客Day2,2021.1.9

发现按照昨天的搭建方法,所有的md文件都需要在服务器上用nano编辑,很难受。于是想了想决定用另一个方法:搭建一个git系统,在本地编辑、编译然后git push/deploy到服务器上。这里我主要参考了这两篇文章:

当然其中必然踩了不少坑,不然花不了一个晚上的时间:)

首先第一件事是ssh认证,参考这篇文章,也可以参考我的另一篇博客,关于CS201搭建服务器的痛苦历程。

第二件事是post-update文件出现问题。这个文件是一个自动脚本,路径在/home/git/blog/hexo.git/hooks/下,作用顾名思义是在git更新之后进行的脚本操作。

首先分析一下目录结构。

目录结构

hexo 文件夹是存放所有生成好的文件的地方,也是上文中root最后连接的位置。hexo.git是一个git仓库,需要通过git init创建。其中,hexo.git/hooks存放了很多脚本,其中有一个脚本是在结束git更新后进行,用途就是将仓库中要发布的文件拷贝到发布文件夹中,使nginx能够得到更新。

问题出在哪里?重复尝试多次后,脚本依旧没有办法第一时间完成更新。我尝试了一下几个方法:

  1. 重启nginx服务
  2. 多次从本地hexo deploy
  3. 把root改到原来的地方又改回来
  4. 把脚本前面的注释删除

同时,更新网页的速度变得极其缓慢,加载一个网页要用上10甚至9分钟,很离谱,而改到昨天的root位置就完全正常。于是我尝试了以下步骤:

  1. 重启服务器
  2. 把主题改成Next

不知道是哪一项起效了,反正它突然好了!我也懒得管了!

常用的hexo指令 Part2:

  • 清理以前的generate信息:hexo clean
  • 生成新的网页:hexo generate or hexo g
  • 部署博客:hexo deploy or hexo d
  • 以上两个也可以合并成:hexo d -g

总结

走了好多好多弯路!前后看了好几个不同的帖子,实在是太可惜了,如果一开始就找到合适的教程恐怕能节省很多很多时间。以下是几篇实际上不错的教程:

还有几个很有帮助的文章:

最后来一张我网站的截屏!这是WingerBlog上线的第一天~~~

WingerBlog正式上线!

Built with Hugo
主题 StackJimmy 设计