一、环境准备
1. 库和工具
(1) 依赖库
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
(2) 编译工具
yum install gcc perl-ExtUtils-MakeMaker package
2. Git安装
(1) 移除旧版本
系统自带的版本过低,我们删除重装。
yum remove git
(2) 下载
cd /usr/local/src
wget http://ftp.ntu.edu.tw/software/scm/git/git-2.26.0.tar.gz
(3) 编译
tar -zvxf git-2.26.0.tar.gz # 解压
cd git-2.26.0
make prefix=/usr/local/git all # 编译
(4) 安装
make prefix=/usr/local/git install
3. 环境变量
进入环境变量配置文件
vim /etc/profile
# 添加如下内容
PATH=$PATH:/usr/local/git/bin # git 的目录
export PATH
刷新配置让其生效
source /etc/profile
验证安装完成,查看 git
的版本号是否安装成功。
git --version
二、创建用户
1. 添加用户
这里我创建的用户为:great
,下文不再具体说明。创建完用户会对应在/home
目录下生成同名文件夹,之后我们就会将Git仓库设置在该目录下。
adduser great # 创建用户
passwd great # 设置密码
2. 获取权限
chmod 740 /etc/sudoers
3. 添加信息
在文件中找到 root ALL=(ALL) ALL
在其下面添加如下内容:
vim /etc/sudoers # 编辑配置文件
root ALL=(ALL) ALL
great ALL=(ALL) ALL
4. 退回权限
chmod 400 /etc/sudoers
三、密匙绑定
1. 密匙创建
在任意位置鼠标右击选择:Git Bash Here
,在弹出的命令窗口输入:
ssh-keygen -t rsa
根据提示确认即可,默认在:C:\Users\Win用户名\.ssh
下尾缀为.pub
的文件,里面就是你的SSH秘钥。
2. 切换用户
su great # 切换登录账号
mkdir ~/.ssh # 创建 .ssh 文件夹
3. 密钥上传
保存密钥到服务器,将刚才本地生成的密匙复制到文件内,即本地尾缀为.pub
的文件
vim ~/.ssh/authorized_keys # 编辑文件
chmod 755 ~
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
4. 测试连接
在本地电脑鼠标右击选择 git bash here
,成功会提示你输入用户密码,登录即可。
ssh -v <username>@<your_ip>
四、站点创建
1. 切换用户
su root
mkdir /home/myhexo # 创建网站的根目录
2. 赋予权限
chown great:great -R /home/myhexo
五、Nginx安装
1. 安装
yum install -y nginx # 安装
nginx -t # 查看
2. 修改配置
修改 nginx
服务相关配置。
vim /etc/nginx/nginx.conf
在文本中找到 server
模块,修改 server_name
和 root
, 没有域名可以先空着,后续通过 IP
地址访问。
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _; # 博客域名,没有先不填
root /home/myhexo; # 上面创建的博客仓库目录
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
3. Nginx启动
注意每次重启服务器都需要重新启动 Nginx
。
systemctl start nginx.service
六、搭建仓库
1. 切换用户
su root # 切换回根用户
cd /home/great
2. 初始化
git init --bare blog.git # 初始化仓库
chown great:great -R blog.git # 修改blog.git权限
3. 配置钩子
在 /home/myhexo/blog.git
下有一个自动生成的 hooks
文件夹,我们创建一个新的 git
钩子 post-receive
用于自动部署。
在该文件中添加下面两行代码,指定 Git
的工作树(源代码)和 Git
目录
vim blog.git/hooks/post-receive
# 添加如下内容
#!/bin/bash
git --work-tree=/home/myhexo --git-dir=/home/great/blog.git checkout -f
4. 修改权限
chmod +x /home/great/blog.git/hooks/post-receive
5. 链接文件
ln -s /usr/local/great/bin/git-receive-pack /usr/bin/git-receive-pack
七、本地配置
1. 修改配置
修改根站点的 _config.yml
文件为如下所示:
deploy:
type: git
repo: root@<your_ip>:/home/great/blog.git #仓库地址
branch: master #分支
2. 部署推送
在 Hexo
目录下新建命令行窗口进行推送部署,系统会要求你输入 root
密码,完成后在浏览器地址栏输入你的 IP
地址即可访问博客。
hexo cl && hexo g -d