Hexo云端部署教程


一、环境准备

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_nameroot , 没有域名可以先空着,后续通过 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

文章作者: 烽火戏诸诸诸侯
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 烽火戏诸诸诸侯 !
  目录