一、Git安装及配置

1、安装依赖库和编译工具

  • 安装依赖库:
1
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel 
  • 安装编译工具
1
yum install gcc perl-ExtUtils-MakeMaker package 

2、下载 git并解压编译安装

  • 查看服务器已有的git版本
1
git --version

官网版本已经更新到2.40.0,因为yum仓库的Git版本更新的时间会存在延时,通过命令行安装,版本应该是1.8.3.1,所以我们这里采用源码包安装方式安装2.26.0

  • 移除旧版本的git
1
yum remove git
  • /usr/local/src 目录存放下载下来的 git 安装包
1
cd /usr/local/src  
  • 下载最新版git到/usr/local/src
1
wget http://ftp.ntu.edu.tw/software/scm/git/git-2.26.0.tar.gz
  • 解压到当前目录
1
tar -zvxf git-2.26.0.tar.gz
  • 进入 git-2.26.0 目录下
1
cd git-2.26.0
  • 编译
1
make prefix=/usr/local/git all
  • 安装 git 到 /usr/local/git 目录下
1
make prefix=/usr/local/git install

3、配置 git 环境变量

  • 打开环境变量配置文件
1
vim /etc/profile

按i进入编辑模式,按向下键到底部,添加下面两行命令:

1
2
PATH=$PATH:/usr/local/git/bin   # git 的目录
export PATH
  • 使 git 环境变量生效
1
source /etc/profile
  • 验证安装完成,查看 git 的版本号
1
git --version

4、创建 git 用户

  • 创建git用户
1
adduser git
  • 获取权限
1
2
chmod 740 /etc/sudoers
vim /etc/sudoers

i 键进入文件的编辑模式,按向下键找到如下字段

1
2
3
root    ALL=(ALL)       ALL
# 增加此句
git ALL=(ALL) ALL
  • 退回权限
1
chmod 400 /etc/sudoers

5、配置密匙

  • PC端创建密钥
1
2
3
# 生成公钥
ssh-keygen -t rsa
# 进入 C:\Users\主机名\.ssh 目录, id_rsa.pub 里面的信息就是SSH公钥
  • id_rsa.pub里面的密钥复制,在服务器运行下面命令,创建.ssh文件夹
1
2
su git
mkdir ~/.ssh
  • 创建.ssh/authorized_keys文件,打开authorized_keys文件并将SSH公钥内容拷贝其中并保存
1
vim ~/.ssh/authorized_keys
  • 修改权限
1
2
3
chmod 755 ~
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
  • 测试本地连接服务器
1
ssh -v git@IP     #IP为你的服务器ip

6、服务器端创建git仓库

  • 切换到root用户,创建一个目录用于存储网站的根目录
1
2
3
su root
mkdir /home/hexo #创建网站的根目录
chown git:git -R /home/hexo #授予权限

7、自动化部署

  • 建立git仓库(root用户下操作)
1
2
cd /home/git
git init --bare blog.git
  • 修改blog.git权限
1
chown git:git -R blog.git
  • /home/hexo/blog.git 下,有一个自动生成的 hooks 文件夹,我们创建一个新的 git 钩子 post-receive,用于自动部署
1
vim blog.git/hooks/post-receive

i 键进入文件的编辑模式,指定 Git 的工作树(源代码)和 Git 目录

1
2
#!/bin/bash 
git --work-tree=/home/hexo --git-dir=/home/git/blog.git checkout -f
  • 修改文件权限
1
chmod +x /home/git/blog.git/hooks/post-receive

二、PC端(本地)部署Hexo

1、安装 Hexo

Hexo安装目录位置随意,你高兴就好!

  • 全局安装
1
npm install -g hexo-cli
  • 在Hexo目录中打开CMD窗口
1
2
hexo init
npm install
  • 新建完成后,指定文件夹的目录如下:
1
2
3
4
5
6
7
8
.
├── _config.yml
├── package.json
├── scaffolds
├── source
| ├── _drafts
| └── _posts
└── themes

更多请参考:文档 | Hexo

三、宝塔面板(BT)部署网站

1、在线安装宝塔面板

1
https://www.bt.cn/new/download.html

2、命令安装

1
yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec

3、部署网站

,自行百度

四、Nginx

1、宝塔面板安装

1
宝塔面板 --> 软件商店 -->搜索Nginx --> 点击安装

2、命令安装

以下只是参考:

CSDN教程

3、Nginx配置

说明:宝塔安装Nginx会默认给你配置好,只需修改 root /home/hexo; #此处配置成你的指令域 此处

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
server
{
listen 80;
listen 443 ssl http2;
server_name www.example.com; #请修改(你的域名)
index index.html index.htm default.php default.htm default.html;
root /home/hexo; #此处配置成你的指令域

#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
#error_page 404/404.html;
#HTTP_TO_HTTPS_START
if ($server_port !~ 443){
rewrite ^(/.*)$ https://$host$1 permanent;
}
#HTTP_TO_HTTPS_END
limit_conn perserver 300;
limit_conn perip 200;
limit_rate 5120k;
ssl_certificate fullchain.pem; #请修改
ssl_certificate_key privkey.pem; #请修改
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
add_header Strict-Transport-Security "max-age=31536000";
error_page 497 https://$host$request_uri;
#SSL-END

#ERROR-PAGE-START 错误页配置,可以注释、删除或修改
error_page 404 /404.html;
#error_page 502 /502.html;
#ERROR-PAGE-END

#PHP-INFO-START PHP引用配置,可以注释或修改


#禁止访问的文件或目录
location ~ ^/(\.user.ini|\.htaccess|\.git|\.env|\.svn|\.project|LICENSE|README.md)
{
return 404;
}

#一键申请SSL证书验证目录相关设置
location ~ \.well-known{
allow all;
}

#禁止在证书验证目录放入敏感文件
if ( $uri ~ "^/\.well-known/.*\.(php|jsp|py|js|css|lua|ts|go|zip|tar\.gz|rar|7z|sql|bak)$" ) {
return 403;
}

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
error_log /dev/null;
access_log /dev/null;
}
location ~ .*\.(js|css)?$
{
expires 12h;
error_log /dev/null;
access_log /dev/null;
}
}

五、PC端配置

1、博客根目录_config下增加

1
2
3
4
deploy:
type: git
repo: root@***(服务器IP):/home/git/blog.git #仓库地址
branch: master #分支

2、部署(Hexo的一键三联)

hexo d后,出现类似[email protected]'s password:的信息,再输入自己的服务器登录密码即可

1
hexo cl && hexo g && hexo d