gitee 码云自动部署 webhook.php,简单快捷

本文详细介绍了如何使用Git在本地初始化仓库,并设置Webhook实现自动部署。通过创建webhook.php文件,配置Gitee仓库,设置服务器端的权限和脚本,实现了每次本地push后自动同步到服务器的效果。
摘要由CSDN通过智能技术生成

内容很少的,只是我截图比较多而已,一步一步来的

1,在本地初始化一个仓库

   随便创建个文件夹,进入文件夹,打开 git bash here

    git init 

    vim webhook.php

     

<?php

//   /www/wwwroot/site.com
$webPath = '您的网站根目录';


//  WebHook签名密钥,是签名秘钥部署密码哟
$webHookSecret = 'zidongbushu';

/**
 * 写日志函数
 * @param $str '日志字符串'
 */
function writeLog($str) {
    file_put_contents('webhook.log', $str, FILE_APPEND | LOCK_EX);
}

//以流的方式读取传输过来的json
$body = file_get_contents("php://input");
if (empty($body)) {
    die('无输入');
}
//json转换为array
$body = json_decode($body, true);

//签名校验 (文档详见: https://gitee.com/help/articles/4290)
$secretJoin = $body['timestamp'] . "\n" . $webHookSecret;
$mySign = base64_encode(hash_hmac('sha256', $secretJoin, $webHookSecret, true));
if ($mySign !== $body['sign']) {
    die('签名错误');
}

//获取推送分支
$branch = str_replace('refs/heads/', '', $body['ref']);
//执行更新
$output = shell_exec('cd ' . $webPath . '; git pull origin ' . $branch . ' 2<&1; chown -R www:www ' . $webPath . '*;');

//输出执行结果
die('执行结果:' . json_encode($output));

 git add .

 git commit -m '初始化&增加了webhook.php'

2, 在gitee新建一个空仓库

 

 当你新建一个仓库就会出现如下界面,然后三步走

 此时gitee已经有了webhook.php文件了

3, 配置远程仓库gitee webhook

 

4, 到配置服务器端咯哟

4.1

 4.2

 4.3

 4.4,修改目录所属用户和组

 4.5

 4.6,修改一下,保存退出wq

 5,试试行不行

     显然还不行  百度一下,执行: git config pull.rebase false

 完成

 测试一下吧:

本地随便添加个文件

git add .

git commit -m '添加个aaa.txt文件'

git push

 再去看看服务器那边,ok啦,本地每次push,自动同步过来啦

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值