这里主要讲一下云服务器端的配置。
我使用的是腾讯云CVM服务器。操作系统使用的是centOS 7.3 64位。
因为ubuntu给的并不是root权限,所以改成centOS 7.3,给的是root权限。

环境配置文件

安装 git

1
yum install -y git

编辑环境配置文件

1
2
3
4
5
6
7
vim /etc/profile

PATH=$PATH:/usr/local/git/bin
export PATH

## 刷新环境变量
source /etc/profile

云服务器端的配置

Nginx配置

ssh连接服务器。
安装Nginx

1
yum install -y nginx

启动Nginx服务

1
2
3
4
5
6
service nginx start

## or
systemctl start nginx.service

### 浏览器输入公网IP地址,看看是否成功

测试Nginx服务器

1
wget http://127.0.0.1

能够正常获取欢迎页面说明Nginx安装成功。

1
2
3
4
5
6
7
--2013-02-20 17:07:26-- http://127.0.0.1/
Connecting to 127.0.0.1:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 151 [text/html]
Saving to: `index.html'
100%[===================================>] 151 --.-K/s in 0s
2013-02-20 17:07:26 (37.9 MB/s) - `index.html' saved [151/151]

以上表示安装配置成功。

在浏览器中输入服务器ip地址
我的是123.207.245.97

添加git用户

我这里是把项目仓库放在git中
新建了一个git用户

1
2
3
4
adduser git
passwd git
chmod 740 /etc/sudoers
vim /etc/sudoers

寻找内容

1
2
3
4
5
6
7
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
## 添加
git ALL=(ALL) ALL

退出并且更改权限
chmod 400 /etc/sudoers

添加密钥

1
2
3
4
5
su git
mkdir ~/.ssh
vim ~/.ssh/authorized_keys

## 将本地的 id_rsa.pub 文件全部复制进去

修改权限

1
2
3
cd ~
chmod 600 .ssh/authorized_keys
chmod 700 .ssh

本地测试

1
2
ssh -v git@SERVER
# 如果不出现failed字样,说明成功

云服务器创建网站目录

1
2
3
su root
mkdir /home/hexo
chown git:git -R /home/hexo

建立代码仓库

1
2
3
4
5
su root

cd /home/git
git init --bare blog.git
chown git:git -R blog.git

配置Nginx

查找Nginx配置文件

1
nginx -t

我的配置文件位于

1
vim /etc/nginx/nginx.conf

如下图:
01

1
2
3
4
5
6
7
8
9
10
11
server{
listen 80 default_server;
listen [::]:80 default_server;
server_name localhost;
root /home/hexo;

location / {
index index.html index.htm;
}
}

注意一定要给

1
chown -R 755 /home/hexo

给予/home/hexo权限
这样才可以访问。

最后保存后重启Nginx服务器

1
service nginx restart

实现自动部署

自动部署是通过Git钩子实现的
接下来,在服务器上的裸仓库 hexo.git 创建一个钩子,在满足特定条件时将静态 HTML 文件传送到 Web 服务器的目录下,即 /home/git。

在第二步建立的裸仓中(即hexo.git文件夹中),找到hooks目录
新建 post-receive 文件

1
2
3
4
5
6
7
cd /home/git
vim blog.git/hooks/post-receive

## 填入以下内容

#!/bin/sh
git --work-tree=/home/hexo --git-dir=/home/git/blog.git checkout -f

修改权限让其可执行

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

部署

hexo本地站点配置文件中修改:

1
2
3
4
5
deploy:
type: git
repo:
git@123.207.245.97:/home/git/blog.git
branch: master

就可以成功地把github博客迁移到腾讯云啦~
别忘了备案!