在自己的服务器上搭建hexo blog

First Post:

Last Update:

Word Count:
401

Read Time:
1 min

在自己的服务器上搭建hexo blog

在本地生成ssh秘钥

ssh-keygen -t rsa -b 4096 -C “i0gan@qq.com

一路回车,生成的公钥保存在 ~/.ssh/id_rsa.pub

本教程基于会在github上搭建移植到自己的服务器中

必备:

nginx

git

nodejs

添加用户

1
2
useradd -m git
passwd git

vim /etc/sudoers

找到root ALL=(ALL) ALL,在它下方加入一行

1
git ALL=(ALL) ALL

给git用户添加ssh密钥

1
2
3
4
5
6
su - git
mkdir -p ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
vim ~/.ssh/authorized_keys #将本地生成ssh公钥密钥(~/.ssh/id_rsa.pub) 粘贴进去

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

1
2
3
4
5
sudo mkdir -p /var/repo    #新建目录,这是git仓库的位置
sudo mkdir pp /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
cd /etc/nginx/conf.d
sudo vim blog.conf

blog.conf的内如如下:

1
2
3
4
5
6
server {
listen 80 default_server;
listen [::] default_server;
server_name i0gan.pwnsky.com;
root /var/www/hexo;
}

检查Nginx语法并重载nginx:

1
2
nginx -t
nginx -s reload

修改git用户的默认shell环境

1
2
3
vim /etc/passwd
#修改最后一行
#将/bin/bash修改为/usr/bin/git-shell

本地hexo 配置

1
2
3
4
5
6
7
8
9
vim _config.yml

# 找到deploy配置部分
# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
type: git
repo: git@xxx.xx.xxx.xxx:/var/repo/blog.git # IP填写自己服务器的IP即可
branch: master
打赏点小钱
支付宝 | Alipay
微信 | WeChat