建站小故事:阿里云、nginx、hexo和git
一点点关于搭建个人网站的经验总结以及对原有教程的补充。
建站又是一阵折腾…… 参考教程 从零搭建Hexo博客并部署阿里云服务器 常常苦口婆心地讲,要授人以渔,而这恰恰说明授人以渔是鲜有人做到。 虽然是跟随这个教程,但是仍然遇上了不少问题,折腾了很久,最终解决了,以下作为记录。
- 建设逻辑:
- 用
hexo作为网页框架引擎:用hexo的插件把网页代码部署到远程仓库,同时还可以备份到github - 用
git作为部署的工具:服务器上创建git账号,用于ssh登录和管理自定义的git仓库 ngnix作为web服务器- 用阿里云服务器,系统 CentOS 8.2
- 用
- 即便自定义git仓库可以
push,也仅仅只是压缩储存了提交的内容,如果需要把这个自定义git仓库里的源代码提取出来,还需要用到git hook。在自定义的git仓库中应该有自动生成的hooks文件夹,其中的文件会按照文件名在特定的git命令执行时运行。我需要利用它来把本地上传的代码从仓库里部署到ngnix的网站根目录 - git hook用法: 编辑文件
blog.git/hooks/post-receive在1
2#!/bin/sh
git --work-tree=/home/www/website --git-dir=/home/git/blog.git checkout -fhooks文件夹里的脚本会按照命名在特定时候触发运行。这里运行bash命令。/home/www/website是nginx的服务器目录。将hexo生成的public文件夹中的文件提交到此blog.git仓库后就会用checkout命令将文件同步到服务器的目录。上传部署就完成了 - ssh 密钥配置方法 ssh密钥简单来说就是有两点:
- 服务端必须在ssh服务设置中允许rst验证
- 服务端被登录的账号下有
.ssh/authorized_keys文件,将客户端的公钥拷贝进去即为安装密钥
- git账户(或者你用于远程部署git仓库的账户)必须要有对应的修改权限
- hexo-deployer-git插件配置方法
- 关键是多个git仓库如何配置,如下,在本地的hexo博客设置文件
_config.yml中配置1
2
3
4
5
6
7deploy:
type: git
repo:
<repo name 1>: https://github.com/<who>/<repo>,<branch>
<repo name 2>: <user>@<IP>:/<repo>,<branch>
github: https://github.com/TuoLiYinLi/BlogBackup.git,master
...
- 关键是多个git仓库如何配置,如下,在本地的hexo博客设置文件
最后的插曲。其实用github.io更简单不少,不仅解决了域名和备案的问题,而且成本是零,于是两周后我还是用回了github🤣
建站小故事:阿里云、nginx、hexo和git
http://tuoliyinli.github.io/2022/07/01/建站小故事/