Hexo 静态部署博客默认使用的是github提供的gitpages,如果你有自己的域名以及VPS的话,可以将博客同步一份到主机上并且在gitpage上保留一份副本。 下面简单介绍一下通过git hook,同步文章的部署步骤,这样以后更换写作平台,以及VPS主机平台都方便回来查找。

使用SSH密钥登录远程VPS

看.ssh目录下有没有,没有的话生成:

1
ssh-keygen -t rsa -C "你的邮箱或者任何字符串"

利用ssh-copy-id 复制到远程主机

1
ssh-copy-id -i .ssh/id_rsa.pub root@ip -p 22

如果换了ssh端口的话,post的时候会报错,可以在.ssh/下写入配置

1
2
3
4
5
6
7
8
9
vim .ssh/config

Host HOST_ALIAS                       # 用于 SSH 连接的别名,最好与 HostName 保持一致,都用ip或者都用域名
  HostName SERVER_DOMAIN              # 服务器的域名或 IP 地址
  Port SERVER_PORT                    # 服务器的端口号,默认为 22,可选
  User SERVER_USER                    # 服务器的用户名
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_rsa    # 本机上存放的私钥路径

在远程主机配置git仓库

比如在root目录下生成blog.git,并编辑post-receive(没有的话生成一个)

1
2
3
git init --bare blog.git
cd blog.git、hooks
vim post-receive

直接删除原来,静态目录,把新的clone过去

1
2
3
#!/bin/bash
rm -rf /var/www/blog
git clone /root/blog.git /var/www/blog

赋予可执行权限

1
chmoc +x post-receive

配置hexo,_config.yml

1
2
3
4
5
deploy:
  type: git
  repo: 
    github: <repository url>
    prod: user@ip_address:repos/test.git

接下来,执行部署流程就可以了

1
2
3
hexo clean
hexo g
hexo d