Hexo 是一个便捷的静态博客系统,最方便快捷的方案就是部署到 GitPage 上。但是 GitPage 的服务器位于境外,如果没有加 CDN 的话,国内用户访问 GitPage 的速度普遍较慢,而且国内搜索引擎对基本不(能)抓取 GitPage 上的内容,影响网站的 SEO。
环境
- 带
Git
环境的 ECS(以CentOS
为例) - 本地
Hexo
环境(Node.js
等) - 已备案域名等其他必要的东西
原理
示意图
创建仓库
在 ECS 上,检查 Git 环境,创建 Git 仓库
|
|
其中git init --bare
指令的作用是创建一个裸仓库。裸仓库与普通git仓库不同,普通git仓库包含所有可操作性的项目文件和.git
目录,而裸仓库只包含commit的版本信息。简便起见,这里直接创建裸仓库。
Hexo配置
|
|
插件安装
|
|
该插件的作用是执行deploy
的时候,将 Hexo 生成的静态文件提交到 Hexo 的_config.yml
配置的deploy.repo
地址。如果已经成功部署到 GitPage 过,该插件一般都默认安装了,可以执行该命令检查、更新插件。
自动部署
创建钩子
进入 Git 仓库/hooks
目录,并创建钩子post-receive
。
|
|
然后输入以下内容
|
|
其中/www/blog.git
为仓库路径,/www/wwwroot/byteprince.com
为博客网站路径,/www/tmp/blog
是临时目录。
git会先将文件拉到临时目录,然后再将所有文件拷贝到博客网站目录/www/wwwroot/byteprince.com
。
保存后退出。
更改目录权限
更改网站目录权限
|
|
运行
每次写完博客,在本地博客目录下运行hexo g -d
即可。可能需要输入远程访问服务器的密码。
出现以下提示说明部署成功。
|
|