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

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

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,自动同步过来啦

 

 

 

 


版权声明:本文为qq_35715551原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。