hexo博客部署到腾讯云服务器上

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

云服务器端的配置

Nginx配置

ssh连接服务器。
安装Nginx

1
yum install -y nginx

启动Nginx服务

1
service nginx start

测试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用户

1
adduser git

建立代码仓库

1
2
3
4
5
6
7
8
cd /home/git      
//nginx网站指向/home/git中
mkdir hexo.git
git init --bare hexo.git //这一步是建立裸仓库
chown -R 755 git:git hexo.git
chown 755 git:git hexo.git
chown 755 /home/git
//755表示赋予权限访问

将本地机器的ssh公钥填入
/home/git/.ssh/authorized_keys文件
在服务器端

1
2
3
cd /home/git
mkdir .ssh
nano /home/git/.ssh/authorized_keys

1
ctrl+x保存,输入y,然后回车

配置Nginx

查找Nginx配置文件

1
nginx -t

我的配置文件位于

1
/etc/nginx/nginx.conf

如下图:
01

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

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

注意一定要给

1
chown -R 755 /home/git

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

最后保存后重启Nginx服务器

1
service nginx restart

实现自动部署

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

在第二步建立的裸仓中(即hexo.git文件夹中),找到hooks目录下的post-update.sample,重命名为post-update

1
git --work-tree=/home/git --git-dir=/home/git/hexo.git checkout -f

修改权限让其可执行

1
chmod +x post-update

部署

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

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

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