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

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

  1. 首先,因为Github国内访问实在是有点慢,也不想用CDN加速。
  2. 码云托管指定域名的服务要花钱,不想花钱。
  3. 主要还是自己比较喜欢折腾。
  4. 为什么不用Workpress呢?因为选主题实在是太难了,太难选到心仪的主题,样式自己盖起来也不那么方便。我的Woekpress博客已经打算放弃他了。

0. 开始

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

1. 安装Git

安装git:

yum install git

查看yum源仓库Git信息:

yum info git

安装依赖库:

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

检查git版本:

git --version

配置git:

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进某个目录,这里目录随便就好,我这边是进的宝塔创建的项目目录

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

配置Hooks脚本

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

vim hexo.git/hooks/post-receive

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

#!/bin/bash
  
rm -rf /www/wwwroot/hexo-blog
git clone /www/wwwroot/hexo.git /www/wwwroot/hexo-blog

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

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

3. 部署Hexo博客

修改Hexo的_config.yml文件

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

deploy:
  type: git
  repo: root@115.52.42.55:hexo.git

部署博客

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

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

hexo g -d

4. 配置Nginx

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

hexo deploy云服务_hexo deploy云服务

参考链接:

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