写在开头

总对GitHub、Coding的Page服务不满意,考虑要不要把博客部署到自己的服务器上,于是就有了下面的简单的部署方法。

注:通过宝塔面板实现,不喜勿用


服务器配置

安装宝塔Linux面板

注:宝塔linux6.0版本是基于centos7开发的,务必使用centos7.x 系统
  • CentOS7.x:

    yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
  • Ubuntu/Deepin:

    wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
  • Debian:

    wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh
  • Fedora:

    wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh

安装后,请务必记录面板的用户名和密码,登录后进行默认配置,不再阐述。


安装WebHook

软件管理中,安装WebHook 1.0。

生成部署公钥

使用ssh链接到你的服务器。Windows可开启OpenSSH或者xshell软件。

开启OpenSSH

Windows10下,在设置--应用和功能--可选功能--添加功能中,安装openSSH客户端

通过以下命令链接服务器:

ssh root@服务器ip地址

生成公钥

ssh-keygen
默认回车即可。

生成的公钥在服务器的/root/.ssh中。可通过宝塔面板文件较为方便的下载。

这里我们仅需id_ras.pub文件,下载并打开,然后将内容完全复制。

添加WebHook

在宝塔面板的软件管理中,找到WebHook并点击设置--添加。

名称自拟,执行脚本先随便填写,后面会修改。然后点击提交。

点击编辑,将下面的脚本粘贴到框内。第16行为你的GitHub项目

#!/bin/bash
echo ""
# 输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "Start"
# 判断宝塔WebHook参数是否存在
if [ ! -n "$1" ];
then
          echo "param参数错误"
          echo "End"
          exit
fi
# git项目路径
gitPath="/www/wwwroot/$1"
# git 网址
gitHttp="http://git.xxxxx.com/$1.git"

echo "Web站点路径:$gitPath"

# 判断项目路径是否存在
if [ -d "$gitPath" ]; then
        cd $gitPath
        # 判断是否存在git目录
        if [ ! -d ".git" ]; then
                echo "在该目录下克隆 git"
                git clone $gitHttp gittemp
                mv gittemp/.git .
                rm -rf gittemp
        fi
        # 拉取最新的项目文件
        git reset --hard origin/master
        git pull
        # 设置目录权限
        chown -R www:www $gitPath
        echo "End"
        exit
else
        echo "该项目路径不存在"
        echo "End"
        exit
fi

添加后,查看密钥。


GitHub配置

添加公钥

在你的博客项目中,打开设置,并点击Deploy Keys

然后点击右上角Add deploy key

题目自拟,然后把刚才复制的key粘贴到下面的key中,勾选Allow write access


设置WebHooks

点击WebHooks,添加Webhook。

在URL处填写

http://面板Ip:端口号/hook?access_key=密钥&param=博客网站目录

其中,密钥部分为宝塔配置添加WebHook后的密钥。param为你在面板中创建的博客网站目录。默认在/www/wwwroot/xxxxxx中。

Secret可不填,其他保持默认即可。点击Add webhook


完成

如此配置之后,再部署即能够实时发送到你的服务器上。

hexo g && hexo d
Last modification:November 23, 2019
赞助一杯冰阔落