宝塔后台使用Git管理网站程序自动更新

第一步:安装Git和配置

切到root用户,安装git

yum -y install git

查看git版本

git version

生成公钥,按照提示完成三次回车,即可生成 ssh key

ssh-keygen -t rsa -C "your@email.com"

查看和复制公钥

cat ~/.ssh/id_rsa.pub

在Gitee后台配置ssh

图片[1]-宝塔后台使用Git管理网站程序自动更新

Git全局配置和单个仓库的用户名邮箱配置

git config --global user.name  "username"
git config --global user.email  "your@email.com"

第二步:配置宝塔的webhook

安装webhook

图片[2]-宝塔后台使用Git管理网站程序自动更新

配置webhook脚本

图片[3]-宝塔后台使用Git管理网站程序自动更新

1.webhook脚本1

if test $1 = 'pull'
then
    echo '代码更新:' $(date '+%Y-%m-%d %H:%M:%S')
    cd /www/wwwroot/xxxx.cn
    
    sudo git pull origin master
    chown -R www:www ./
    chmod -R 755 ./
    echo "更新成功"
fi
 

2.webhook脚本2

#!/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="https://gitee.com/yourname/$1.git"
echo "Web站点路径:$gitPath"
#判断项目路径是否存在
if [ -d "$gitPath" ]; then
        cd $gitPath
        #判断是否存在git目录
        if [ ! -d ".git" ]; then
                echo "在该目录下克隆 git"
                sudo git clone $gitHttp gittemp
                sudo mv gittemp/.git .
                sudo rm -rf gittemp
        fi
        echo "拉取最新的项目文件"
        #sudo git reset --hard origin/master
        git reset --hard origin/master
        sudo git pull        
        echo "设置目录权限"
        sudo chown -R www:www $gitPath
        echo "End"
        exit
else
        echo "该项目路径不存在"
        echo "End"
        exit
fi

以上脚本中的yourname需要更改成你自己的,如果用的不是gitee,那就修改整个git网址,其中$1不用改,执行的时候会自动替换的。

然后查看密钥并复制


图片[4]-宝塔后台使用Git管理网站程序自动更新

进入gitee

创建仓库webhook-test
管理-WebHooks
然后参考下图填写


图片[5]-宝塔后台使用Git管理网站程序自动更新

返回宝塔,打开终端

进入wwwroot目录 cd /www/wwwroot
克隆仓库 git clone https://gitee.com/yourname/webhook-test.git


会提示输入账户密码,直接输入即可


图片[6]-宝塔后台使用Git管理网站程序自动更新

配置存储用户名密码

鉴于本文所述方法为https方式拉取,此方式默认不保存用户密码,若不进行此步骤,则脚本虽可执行不报错,但是无法自动拉取代码。

git config  user.name “你的用户名”

git config  user.email “你的邮箱”

git config  user.password “你的密码”

配置完成后还需要在系统存储,执行如下命令:

git config  credential.helper store

可带–global参数配置全局,不带则配置当前仓库。

6.新建个文件测试下

图片[7]-宝塔后台使用Git管理网站程序自动更新


查看宝塔网站目录,出现index.html,成功!

图片[8]-宝塔后台使用Git管理网站程序自动更新
© 版权声明
THE END
喜欢就支持一下吧
点赞11赞赏 分享
评论 抢沙发
头像
平等表达,友善交流,有爱评论~
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容