Hexo建站——远程部署
关于 Hexo 本地部署可以参考 官方文档 或另外一篇文章
~~ /posts/ebd7615d.html~~
¶阿里云
此处以阿里云ECS 作为例子进行说明(为什么不用轻量腾讯云啥的?没机子咩)。
-
首先在本地完成部署;
-
服务器配置:
- 安装 Git:
yum install -y git
,如果安装了就可以跳过 - 创建 git 用户用于站点文件同步:
useradd git
,可以不设置密码; - 初始化 git 仓库:
1
2
3
4
5
6
7
8
9
10
11
12
13
14# 切换到 git 用户
su git
# 初始化仓库: 创建一个名称为 hexo.git 的裸仓库,如果看不习惯可以自己修改, --bare 选项用于创建一个裸仓库
git init --bare ~/hexo.git
# 创建钩子函数,用户同步之后将站点文件 copy 一份到站点目录
cd ~/hexo.git/hooks/
vim post-receive
git --work-tree=/path/to/webroot --git-dir=/home/git/hexo.git checkout -f
# 下面是我的配置,仅供参考
git --work-tree=/data/blog --git-dir=/home/git/hexo checkout -f
rsync -av --delete /data/blog/ /data/nginx/html/📝 这里要提前把涉及到的目录创建好哦!
‼: 一定要给执行权限:
chmod +x post-receive
,已经上当了以为部署没生效,看看更新日期就知道是哪里的问题了。 - 安装 Git:
-
配置 git 用户的 SSH 免密登录,可以参考:待补充
-
修改 hexo 站点配置文件
_config.yml
:1
2
3
4deploy:
- type: git
repo: git@hexo:/home/git/hexo
branch: master -
然后就可以部署到服务器了:
hexo deploy
。如果失败了,注意看终端中的报错信息,挨个挨个解决,毕竟不能保证每个人都会遇到同样的问题。
¶云存储
之前偶然间了解到又拍云给开发者每年提供一定额度的CDN浏览,对于我这个基本没有人到访(我是不是人呐)的站点完全够了,于是迁到了 CDN 上。最近看到还提供 10G 的云存储,存放 Hexo 也基本够了,因此也就用上了。
基本配置很简单,这里主要提一下如何将部署到服务器的静态资源同步到云存储,这里有两种方法:
- FTP客户端:需要手动上传,自然不可能用这种方式;
- 命令行工具:
upx
upx 是又拍云官方提供的一个命令行工具,提供三端多架构二进制包,比如在 Cent8
上,可以这么做:
- 先在控制台创建服务和操作员,保存【服务名】、【操作员名称】、【操作员密码】;
- 从上面的 Github 上下载适合的二进制包:
1 | cd /home/git |
- 基本命令操作,更加全面及详细的请参考 Github:
1 | # 根据提示登录 |
- 找一个舒服的位置躺好,写一个自动登录同步的脚本:
先装一下命令:yum install -y expect
1 |
|
赋权:
1 | chmod +x sync2cloud.sh |
- 加到
post-receive
之后就可以每次部署到服务器时自动推送更新云存储:
1 | bash /home/git/sync2cloud.sh |
切换到 git
用户手动执行一下 post-receive
检查是否有报错: ./post-receive
。(不会有人都没给这个文件执行权限吧,是谁呢,好难猜啊。)
- 下一次
hexo d
之后看看云存储上更新了没,没问题的话就大功告成了。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Evergarden's Blog!
评论
WalineDisqus