创建Git仓库

1.安装 openssh

1
sudo apt-get install openssh-serve

2.安装git

1
sudo sudo apt-get install git-core

3.设置git

在/var/repo下创建名为hexo_static的裸仓库

1
2
3
4
sudo mkdir /var/repo/
sudo chmod -R 755 /var/repo/
cd /var/repo/
git init --bare hexo_static.git

配置Nginx托管文件目录

1.安装Nginx

1
sudo apt-get install nginx -y

2.创建/var/www/hexo目录,用于Nginx托管,修改目录所有权和权限

1
2
3
4
sudo mkdir -p /var/www/hexo

sudo chown -R $USER:$USER /var/www/hexo
sudo chmod -R 755 /var/www/hexo

3.使用vim修改/etc/nginx/sites-enabled/default,使root指向hexo目录

1
sudo vim /etc/nginx/sites-enabled/default

找到server部分,修改如下内容

该步骤将Nginx服务的默认路径修改为指定目录hexo。

1
root /var/www/hexo;

4.重启Nginx服务,使得改动生效

1
sudo service nginx restart

创建Git钩子

1.在之前创建的hexo_static裸仓库下有一个hooks文件夹,在其中创建一个名为post-receive的钩子文件:

1
vim /var/repo/hexo_static.git/hooks/post-receive

在其中写入如下内容:

1
2
3
#!/bin/bash

git --work-tree=/var/www/hexo --git-dir=/var/repo/hexo_static.git checkout -f

2.让该文件变为可执行文件

1
chmod +x /var/repo/hexo_static.git/hooks/post-receive

Windows推送git

找到{user}下的.ssh文件夹 类似 /root/.ssh

将windows下的 {user}/.ssh里面的 id_rsa.pub文件中的内容复制到Ubuntu下的authorized_keys文件

部署Hexo项目

编辑hexo的config.yml文件,在deploy处修改repo项:

1
2
3
4
deploy:
type: git
repo: blog@server_ip:/var/repo/hexo_static.git
branch: master

执行命令hexo deploy,将静态文件上传至Ubuntu服务器

访问测试

打开浏览器,输入Ubuntu服务器的IP地址,就可以看到博客页面啦