小记 - Hexo 部署到阿里云服务器
前几天把 hexo blog 迁移到阿里云服务器,全程看别人的文章,每篇文章描述的方式不尽相同,加之软件环境的不同,再加之我的理解能力短板,中间走了好几次弯路,配完之后,对整体过程加深了理解,之后又重新看了 git hook
的文档,结合配置过程,这里做一次小记。
注:
- 因为是迁移,所以这篇笔记不会介绍 Hexo 相关用法。
- 网上详细的教程非常多,这里细节不做详述,只会总结整体流程以及过程中遇到的坑
之前使用 Hexo 部署静态博客到 Github 或者 coding,也没有细究实现原理,但是一直在折腾,后来看到了下面这张图,这是从 hexo d -g
命令一直到浏览器访问到博客页面的整个流程的架构图。
在部署之前看懂这张图,部署过程会十分流畅。
流程架构
- Hexo 文件结构下,
\source
存放所有markdown
原文件,我们写的文章 存放在\source\_post
目录下 hexo generate
命令将\source
下的markdown
文件编译为html
文件存放到\public
目录下,并且根据时间、tag、category 等生成了索引页面。hexo deploy
命令将把\public
目录下内容推到服务器。- 现在博文已经在服务器了,只不过是在仓库里,我们将内容
checkout
或者clone
到某个可以通过nginx
访问的目录下,例如\var\www
(如无www
,可以新建),注意:不要放在用户文录下 - 通过
nginx
或者其他服务器,将静态站点暴露出去,到这里,所有的核心工作已经完成了
DIY
如果需要 DIY,可以分以下三步走
- 搭建 Git 服务器:中英文链接在文末,可能需要花点时间
- 编写
post-receive
脚本:中英文链接在文末,这一步,可以简单粗暴 - 配置
nginx
:配置nginx
服务器,这个也很简单
仅供参考
关于 Git 服务器,可以参考 Git 官网文档,或者是廖雪峰先生的教程,做到正常推拉即可。
关于 git hooks
,昨天写的小记 Git Hooks,可以了解下
上面我说这一步可以简单粗暴,下面是我的服务器上的 post-receive
脚本,我把代码 从仓库直接 clone
到 /var/www/hexo
目录下
1 | !/bin/sh |
关于 nginx
配置
1 | server { |
教程虽好,且看且学习,知其然,更应知其所以然
晚安!
参考:
作者: leeon
来源: https://leeon.im
链接: https://leeon.im/note-hexo-deploy-on-server/
本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可