Hexo一键部署到云服务器

摘要: 在云主机上搭建一个私有git裸仓库,然后使用nginx作为web服务器,就可以轻松将Hexo博客通过git一键部署到云主机上。

为什么要把Hexo放到服务器上呢?

  1. 首先,因为Github国内访问实在是有点慢,也不想用CDN加速。

  2. 码云托管指定域名的服务要花钱,不想花钱。

  3. 主要还是自己比较喜欢折腾。

  4. 为什么不用Workpress呢?因为选主题实在是太难了,太难选到心仪的主题,样式自己盖起来也不那么方便。我的Woekpress博客已经打算放弃他了。

0. 开始

我的云主机炒作系统是Ctenos7 为了方便安装了宝塔面板,非常爽!所以我这边就不用安装Nginx了,直接使用就好。

1. 安装Git

安装git:

1
yum install git

查看yum源仓库Git信息:

1
yum info git

安装依赖库:

1
2
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum install gcc-c++ perl-ExtUtils-MakeMaker

检查git版本:

1
git --version

配置git:

1
2
3
4
1 git config --global user.name "Your Name"
2 git config --global user.email "email@example.com"
3 #查看配置是否生效
4 git config --list

2. 配置Git Hooks

创建Git裸仓库

blog.git作为远程Git仓库,Hexo在本地生成的博客静态文件可以通过push与其同步。

首先cd进某个目录,这里目录随便就好,我这边是进的宝塔创建的项目目录

1
2
3
cd /www/wwwroot
mkdir ~/hexo.git && cd ~/hexo.git
git init --bare

配置Hooks脚本

post-receive脚本将在blog.git仓库接收到push时执行。

1
vim hexo.git/hooks/post-receive

写入脚本,脚本非常简单,删除原有的/www/wwwroot/hexo-blog目录,也就是项目部署的根目录,然后从hexo.git仓库clone新的博客静态文件。

1
2
3
4
#!/bin/bash

rm -rf /www/wwwroot/hexo-blog
git clone /www/wwwroot/hexo.git /www/wwwroot/hexo-blog

post-receive脚本执行权限,否则脚本不会执行。

1
chmod +x blog.git/hooks/post-receive

3. 部署Hexo博客

修改Hexo的_config.yml文件

注意:这里IP替换成自己服务器的公网IP

1
2
3
deploy:
type: git
repo: root@115.52.42.55:hexo.git

部署博客

hexo先生成新的博客静态文件,然后通过git将其同步到云主机的blog.git仓库。

注意:这里推送文件到服务器时需要输入root用户的密码

1
hexo g -d

4. 配置Nginx

我这边使用的宝塔面板快速创建网站并指定目录就好了,如果没有使用宝塔面板需要安装Nginx并配置就可以了。

image-20200527154341122

参考链接:

到这里就结束了,如果有疑问欢迎留言。

载入天数...载入时分秒...

请我喝杯咖啡吧~

支付宝
微信