部署hexo博客到Linux 服务器

将hexo 博客部署到自己的Linux服务器下

服务器操作

安装git

1
yum install -y nginx git

添加git用户并设置权限

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#添加用户
useradd git

#设置密码
passwd git

# 给git用户配置sudo权限
chmod 740 /etc/sudoers
#编辑sudoers配置文件
vim /etc/sudoers
# 找到root ALL=(ALL) ALL,在它下方加入一行 一般在文件文件最下方
git ALL=(ALL) ALL

chmod 400 /etc/sudoers

添加git用户的秘钥登录

给git用户添加ssh秘钥登录的授权文件

1
2
3
4
5
su - git
mkdir -p ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

获取在自己的电脑上的 ssh 公钥 id_rsa.pub 文件的内容,将其内容复制到authorzied_keys文件下

1
vim ~/.ssh/authorized_keys    #将ssh密钥粘贴进去

创建git仓库实现自动部署

创建git仓库并使用git-hooks实现自动部署

1
2
3
4
5
sudo mkdir -p /var/repo    #新建目录,这是git仓库的位置
sudo mkdir -p /var/www/hexo
cd /var/repo #转到git仓库的文件夹
sudo git init --bare blog.git #创建一个名叫blog的仓库
sudo vim /var/repo/blog.git/hooks/post-update

post-update的内如如下:

1
2
#!/bin/bash
git --work-tree=/var/www/hexo --git-dir=/var/repo/blog.git checkout -f

给post-update授权

1
2
3
4
cd /var/repo/blog.git/hooks/
sudo chown -R git:git /var/repo/
sudo chown -R git:git /var/www/hexo
sudo chmod +x post-update #赋予其可执行权限

配置nginx

1
2
3
4
5
6
7
8
9
10
cd /etc/nginx/conf.d/
vim blog.conf
blog.conf的内如如下:

server {
listen 80 default_server;
listen [::] default_server;
server_name xybin.top;#可以写自己的域名
root /var/www/hexo;
}

检查Nginx语法并重载nginx:

1
2
3
4
5
6
nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

nginx -s reload

将hexo部署到服务器

安装完hexo就可以将hexo生成的文章部署到服务器上,打开站点配置文件 _config.yml,翻到最后,修改为

1
2
3
4
deploy:
type: git
repo: git@***.***.***.***:/var/repo/blog.git # IP填写自己服务器的IP即可,也可用自己的域名
branch: master

然后就可以将自己的hexo博客部署到到服务器下了

1
2
3
4
5
6
hexo clean
hexo generate
hexo deploy
hexo clean清除了你之前生成的东西,也可以不加。
hexo generate 生成静态文章,可以用 hexo g缩写
hexo deploy 部署文章,可以用hexo d缩写
打赏

请我喝杯咖啡吧~

支付宝
微信