1.准备工作
- 已经搭建完毕的本地博客
- 一台 windows/mac 电脑
- 一台云服务器(本教程以阿里云为例)
- 本地电脑安装一个 ssh 连接工具
- 有可能失败很多次但是不会放弃的决心(本博主弄了四个小时)
只要按照本教程来基本上就是复制粘贴的事情,有的小细节可能需要自己注意下
2.服务器上安装配置 git
1.安装依赖工具包
1
| yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel
|
2.安装编译工具
1
| yum install -y gcc perl-ExtUtils-MakeMaker package
|
3.删除旧版本 git
4.回到根目录
5.下载 git 到家目录
1
| wget https://www.kernel.org/pub/software/scm/git/git-2.34.0.tar.gz --no-check-certificate
|
如果提示没有 wget 命令,先安装:
6.解压文件
1
| tar -zxf git-2.34.0.tar.gz
|
7.安装 git
进入到 git 目录下
编译(时间可能有点久,稍微等待一下)
1
| make all prefix=/usr/local/git
|
安装 git 到/usr/local/git 下
1
| make install prefix=/usr/local/git
|
8 配置 git 环境变量
将 git 加入 PATH 目录中
1
| echo 'export PATH=$PATH:/usr/local/git/bin' >> /etc/bashrc
|
使配置生效
查看 git 版本
3.创建用户配置 SSH
1 创建用户并设置密码
这里的 username 改成你自己的用户名,并且为用户设置一个密码。
例如:
1 2
| adduser git passwd a1234567
|

这里密码设置的太简单了,所以就会有提示信息,但是不用管他
2 为用户分配权限
把用户添加到 wheel 组
1
| usermod [username] -G wheel
|
3 本地创建密钥
在本机电脑终端输入(cmd):

第一次回车后输入 y 后面就是一直回车了,新建一个密钥,注意如果之前你将你的本地 hexo 博客部署到 GitHub 的时候生成的那个密钥是不可用的一定要重新生成这个密钥,不然上传的时候就会出错。
一般来说在你创建的时候命令行会提示你密钥文件的路径,windows 电脑一般是 C:\Users\Administrator.ssh
复制 id_rsa.pub 文件中的内容备用。
4 配置公钥
回到服务器终端,切换用户
username 就是你刚刚添加的用户
创建.ssh 文件夹
新建 authorized_keys
1
| vim .ssh/authorized_keys
|
如果提示没有 vim,则先安装:
将刚刚 id_rsa.pub 公钥中的内容,复制粘贴到文件里,保存退出。(注意这里是输入 i 编辑,esc 退出编辑模式,:wq 保存)
4 git 仓库配置
退出用户登录
此时应该是 root 用户,创建 git 目录,并修改目录的所有权和用户权限
1 2 3
| mkdir /home/git/ chown -R [username]:[username] /home/git/ chmod -R 755 /home/git/
|
进入目录,建立 git 仓库,修改权限
1 2 3
| cd /home/git/ git init --bare blog.git chown [username]:[username] -R blog.git
|
新建钩子文件 post-receive
1
| vim /home/git/blog.git/hooks/post-receive
|
进入文本编辑器,粘贴下面两行。
1 2
| #!/bin/bash git --work-tree=/home/blog --git-dir=/home/git/blog.git checkout -f
|
保存退出。然后修改文件权限
1
| chmod +x /home/git/blog.git/hooks/post-receive
|
5 nginx 配置
首先创建 blog 目录用户 nginx 转发
1 2 3
| mkdir /home/blog/ chown -R [username]:[username] /home/blog/ chmod -R 755 /home/blog/
|
1 第一种方法安装 nginx
两种方法任选其一,如果 yum 安装成功就不用第二种。
启动 nginx
1
| systemctl start nginx.service
|
查看 nginx 服务状态,绿色的 active 说明启动成功
1
| systemctl status nginx.service
|
2 第二种方法安装 nginx
针对 yum 无法安装的情况,这里介绍第二种方法,源码安装。
回到家目录
下载安装包,鉴于下载地址的时效性,附上
1
| wget http://nginx.org/download/nginx-1.21.4.tar.gz
|
解压
1
| tar -zxf nginx-1.21.4.tar.gz
|
进入目录,编译安装
1 2 3
| cd nginx-1.21.4 ./configure make install prefix=/usr/local/nginx
|
配置 nginx 环境变量,并使环境变量生效
1 2
| echo 'export PATH=$PATH:/usr/local/nginx/sbin' >> /etc/bashrc source /etc/bashrc
|
查看 nginx 版本号
配置 Systemd 服务
1
| vim /lib/systemd/system/nginx.service
|
在文本编辑器中粘贴以下内容:
1 2 3 4 5 6 7 8 9 10 11 12 13
| [Unit] Description=nginx After=network.target
[Service] Type=forking ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/usr/local/nginx/sbin/nginx -s quit PrivateTmp= true
[Install] WantedBy=multi-user.target
|
内容说明:
1 2 3 4 5 6 7 8 9 10 11
| [Unit]:服务的说明 Description:描述服务 After:描述服务类别 [Service]服务运行参数的设置 Type=forking是后台运行的形式 ExecStart为服务的具体运行命令 ExecReload为重启命令 ExecStop为停止命令 PrivateTmp=True表示给服务分配独立的临时空间 注意:[Service]的启动、重启、停止命令全部要求使用绝对路径 [Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3
|
设置开机自启动
1
| systemctl enable nginx.service
|
重启电脑
重启后,查看 nginx 服务状态,绿色的 active 说明启动成功
1
| systemctl status nginx.service
|
3 修改 nginx 转发配置
在浏览器中输入服务器公网 ip 地址,测试是否能打开。
查看 nginx 的默认配置文件的安装位置
修改 nginx 的默认配置,其中 cd 后边就是刚刚查到的安装位置,每个人可能都不一样,我这里是/usr/local/nginx/conf/nginx.conf
1
| vim /usr/local/nginx/conf/nginx.conf
|
在文本编辑器中找到如下位置
1 2 3 4 5 6 7 8 9 10 11 12 13
| server { listen 80 default_server; listen [::]:80 default_server; root /home/blog; server_name www.example.com;
include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { }
|
保存退出。重启 nginx 服务
1
| systemctl restart nginx.service
|
6 在 hexo 站点配置文件中配置
打开你本地的 hexo 博客所在文件,打开站点配置文件_config.yml
1 2 3 4
| deploy: type: git repository: [username]@100.0.0.100:/home/git/blog.git branch: master
|
在本地 hexo 博客根目录下,打开终端,部署
1 2 3
| hexo clean hexo g hexo d
|
如果提示 ERROR Deployer not found:git 错误,先安装:
1
| npm install hexo-deployer-git --save
|

出现这个问题,删除 known_hosts 文件,可能是之前生成过,输入然后输入会让你输入密码,就是你的 git 用户密码
位置:C:\Users\Administrator.ssh
打开浏览器输入你的服务器公网 ip,应该已经部署成功了。