Hexo 部署方式有很多, 这里选择是默认的 Git 一键部署方式.
前提条件: 搭建好的 Hexo 本地环境, 具有公网IP的服务器, 具备ssh知识.
相关资料
- 官方文档 (用处较小)
- 部署插件 (自定义配置会用到)
服务器环境准备
安装 git 和 Nginx
git
用来接收你的网站文件推送的,是实现一键部署的关键。Nginx
一款反向代理网页服务器,让你的网站得以被外部访问的关键。
# Ubuntu |
创建一个 git 用户(可选)
创建专门用来管理Git仓库的用户,主要是为了权限管理,可参考官方文档
adduser git |
启用git shell
(可选)
查看git-shell是否存在
cat /etc/shells |
不存在则添加
# 查看git-shell路径 默认:/usr/bin/git-shell |
修改git用户默认shell
sudo chsh git -s $(which git-shell) |
测试ssh连接,登录不成功即配置ok
ssh git@<IP地址> |
配置ssh公钥
用户目录下创建 .ssh
文件夹并设置权限为 700
# 使用git用户需要进行切换 |
创建 authorized_keys
文件, 将本机公钥复制到里面.
vim ~/.ssh/authorized_keys |
修改权限
chmod 600 ~/.ssh/authorized_keys |
创建相关目录
创建存放Blog的git仓库
mkdir /var/repo && cd /var/repo |
创建存放网站静态文件的目录
mkdir /var/www/hexo |
设置目录权限
chown -R git:git /var/www/hexo |
PS:仓库名blog.git
、静态文件目录hoxo
可自定义
添加post-receive
钩子
官方参考文档 -> 🚪
在仓库下的 hooks
目录创建 post-receive
文件
vim /var/repo/blog.git/hooks/post-receive |
添加以下内容, 这个钩子会在你本地更新推送到服务器完成后执行, 更新你的网站内容。
|
配置权限
cd /var/repo/blog.git/hooks/ |
检测仓库是否配置成功
能成功克隆则代表配置正确
git clone <使用的用户名>@<你的服务器IP>:/var/repo/blog.git |
配置Nginx
这里修改下Nginx的默认站点配置
cd /etc/nginx/ |
里面长这样 ↓
这里修改root网站根目录就行了,其它可以保持不动
root /var/www/hexo; |
可选配置
server_name _;
一行表示全匹配,只要访问服务器,都会直接转发到当前server
下,有域名后可以设置为域名,然后配置不允许ip访问
,这样可以避免其他人把未备案的域名解析到自己的服务器 IP,而导致服务器被断网。(如果你没备案就解析域名了,那现在就该知道服务器登不了的原因了🤣)
// 注意:以下内容可以在default文件中修改,不过推荐先了解Nginx然后再配置为妙。 |
检查配置然后重载Nginx
nginx -t # 检查配置 |
本地部署配置
部署插件项目 -> 🚪
修改站点目录下_config.yml
文件
单个存储部署配置
deploy: |
多个存储库部署配置(可选)
这里同时对github和服务器进行同步,可以用来应付一些特殊情况,比如:服务器挂了、封了什么的。
deploy: |
部署到服务器
本地操作
# 清除缓存 |
浏览器输入服务器IP,能正常访问就成功了