Hexo静态博客系列之一——在VPS上搭建

本地部分

  1. 安装node.js
1
2
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
apt install nodejs -y
  1. 安装Hexo
1
npm install -g hexo-cli
  1. 初始化博客:

    1. 使用
      1
      hexo init myblog
      创建myblog目录并在其中生成博客需要的基本文件。
    2. 初始化结束后,安装用于git部署的插件hexo-deployer-git和用于预览的本地serverhexo-serverfor
      1
      2
      3
      cd myblog
      npm install hexo-deployer-git --save
      npm install hexo-server
  2. 生成RSA密钥对用于与VPS之间的git验证

    1
    ssh-keygen -b 2048 -t rsa

服务器部分

  1. 安装Web Server服务,这里用nginx。参照官网上的说明。

  2. 安装git:apt install git

  3. 为git单独建立一个账户,在$HOME下建立.ssh目录并在其中建立authorized_keys文件,将之前生成的密钥对中的公钥粘贴到其中:

1
2
3
4
5
adduser git
su git
cd ~
mkdir .ssh
vim .ssh/authorized_keys # paste public key
  1. 建立git裸仓库(bare repository)并设置一个钩子使得push进入裸仓库的文件自动复制到网站根目录下:
1
2
3
git init --bare blog.git
vi blog.git/hooks/post-receive
chmod +x blog.git/hooks/post-receive

post-receive文件的内容为:

1
2
#!/bin/sh
git --work-tree=/var/www/html --git-dir=$HOME/blog.git checkout -f

返回本地部分

  1. 撰写第一篇博客

    1. 在之前生成的myblog目录下运行
    1
    hexo new “helloworld”

    生成新文章模板,位于/myblog/source/_posts/helloworld.md
    2. 在模板中填入内容
    3. 生成HTML

    1
    hexo generate
  2. 预览:hexo server

  3. 部署:
    _config.xml文件中配置部署信息:

1
2
3
4
deploy:
type: git
repo: git@<server>:<path to bare repository>
branch: master

之后

1
hexo deploy

即可。