实战自动化部署hexo记录
难受,两周前把自己的服务器换成自己弄得docker以后,就一直在折腾自己的博客,先是放弃了自己写的博客,换到typecho,然后在换到wordpress,最后换到了 hexo。
先说说放弃自己博客的原因,因为自己是在不想在模板上花费太多的心思,其实后台我很满意的,毕竟自己写的,功能足够自己用就好了。
再说说 typecho和 wordpress,前者轻量,但是可能因为我用的稳定版的的原因,有一些小问题,还懒得去弄,就放弃了。wordpress呢,太重了,太繁杂了。也弃了,其实我就是想要一个写字的地方,简简单单就好,不需要太多的东西,纠结了一圈之后,就用hexo把。
我是这么做的,配置原文什么的我本地有一份,github上我存了一份,这样多台电脑也可以同步了。然后网站部署在了阿里云上面。
下面就说说操作步骤。
hexo 的安装配置以及主题相关我就不多说了,官方文档好得很,我就所说我的部署部分
首先,先看服务器部分,我们首先配置 ssh 的自动登录,这样以后自己管理以及 hexo d
的时候也会很省事
1. 在本机生成SSH密钥
ssh-keygen -t rsa
2. 然后将本地公钥拷贝到服务器
ssh-copy-id root@IP
注意 非 22端口 同样增加 -p参数
简单两步,以后就不用再输入密码了。
然后在服务器上找一个地方存放我们的git相关的东西,其实就是配置一个钩子
git init --bare 你的文件夹名称
bare
的作用是创建一个裸仓库,我个人觉得这个目录就是我们以往的.git
文件夹。
然后我们进入这个目录,进入 hooks
文件夹,执行
vi post-receive
这个就是编辑我们的钩子,这个钩子就是收到推送的时候我们的操作。然后我们编辑这个文件
#! /bin/sh
git --work-tree=/home/docker-nmp/www/blog_hexo(真正存放我们网页的地方) --git-dir=/root/blog.git(这个就是我们上一步创建的git bare 文件夹) checkout -f
第一行就是表示是个sh
文件,这么说可能不准确,我们姑且这么认为。 然后 work-tree
表示需要 clone
的地方, git-dir
是指我们的git配置的位置, checkout
就不说了, -f
就是强制的意思,忽略本地修改。
然后执行
chmod +x post-receive
把这个文件标记为可执行的,这里不要忘记
这些都弄好后,一定要保证work-tree
是存在的,毕竟 git 又不帮我们创建文件夹。如果不存在,也会提示我们成功。这个很坑.
服务器这边就搞定了
现在开始修改本地文件, 我们编辑根目录的_config.yml
文件。
找到 deploy
, 如下
deploy:
type: git
repo: 你的用户名@你的ip:就是上面你设置的git bare 目录
到这,全部搞定可以收工了,注意 用户名需要注意权限问题防止没权限写不进文件夹。
然后我们执行 hexo g; hexo d
不出意外相关的文件夹就会有我们的文章了,这时候我们把 nginx
设置好,博客就可以访问咯,收工
- 原文作者:M1racle
- 原文链接:https://www.cimple.ink/2019/03/28/%E5%AE%9E%E6%88%98%E8%87%AA%E5%8A%A8%E5%8C%96%E9%83%A8%E7%BD%B2hexo%E8%AE%B0%E5%BD%95/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. 进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。