用 Hexo 来部署博客是真的很爽,但是用起来还稍微有点小问题,具体看下面。
部署方式有两种:
- 本地安装 Hexo → hexo g -d 部署到 VPS 或 GitHub Page → 用户访问
- VPS 上安装 Hexo → 本地编写 Markdown → 同步到 VPS 对应目录 → hexo g 解析成静态页(此时还可以选择把静态页同步到其他诸如 GitHub Page 的服务) → hexo s 对外服务 → 用户访问
对于第一种方式
一般大家都是用的这种方式,但是这种方式有一个问题,就是你有多台工作机时,得在几台机器上都装上 Hexo 才能实现每台机器都能部署。
对于第二种方式
这个方式用的人很少,但是可以解决第一种方式的问题,但是比较麻烦的就是设置,比起第一种方法要额外多很多设置的地方,如果要部署到 GitHub Page 更麻烦,哪天有空,我会把这种方式走一遍整理一下。
二、多工作机的文档同步
这个有个解决办法是把 Hexo 目录下的 source 目录新建作为一个 Git 项目,然后同步到 GitHub,以此管理就可以了。
三、Hexo 该如何备份
一般来说备份 scaffolds(模板)、source(文档)、theme(主题及设置)、_config.yml(hexo设置)即可。然后在新环境下:
# 全局安装hexo npm install hexo-cli -g # 安装部署工具 npm install --save hexo-deployer-git # 安装搜索引擎,如果你用的是这个的话 npm install --save hexo-generator-search # 把备份的文件复制进去即可
四、Hexo 的 Git 配置
_config.yml 设置(hexo的,不是主题的),三行一个单元,可以配置多个
deploy: - type: git repo: hexo@yfree.cc:/home/hexo/hexo.git branch: master
VPS 上新建一个用户
# 用户目录下新建 .ssh 目录,新建 authorized_keys 文件 # 用户目录下新建 hexo.git cd ~ git init --bare hexo.git # hexo.git 目录下的 hooks 目录,新建 post-receive 文件,写入: #!/bin/sh git --work-tree=/data/wwwroot/blog.yfree.cc --git-dir=/home/hexo/hexo.git checkout -f # 添加可执行权限 chmod +x post-receive # 新建一对 ssh 密钥,发送公钥到 VPS ssh-copy-id -i ~/.ssh/hexo.pub 'git@vps地址' -p 'ssh端口' # 如果报错,把本地的 .ssh 文件夹中的 known_hosts 文件中的对应行删掉即可