PHP git项目使用钩子同步到服务器

2017-12-05  本文已影响0人  Sven_qi

1.在服务器上配置好git 和用户秘钥
2.从git服务器克隆到服务器
3.再服务器配置钩子执行文件

 //设置防跨域
   header("Access-Control-Allow-Origin: *");

    error_reporting(1);
  //执行路径  可以通过http传过来,如果服务器上项目比较多的话
    $target = '/alidata/www/leizi/LeiZi'; //


   //系统用户 
    $wwwUser = 'www';
  //用户组
    $wwwGroup = 'www';

    $json = json_decode(file_get_contents('php://input'), true);
    //获取传输过来的数据  => 可能是密码,签名一类的加密方式   加密解密方式省略
    $repo = $json['repository']['name'];
    
    //给项目目录赋用户权限 可手动操作
    // $cmds = array(
    //     "cd $target && git pull",
    //     "chown -R {$wwwUser}:{$wwwGroup} $target/",
    // );
    // foreach ($cmds as $cmd) {
    //     shell_exec($cmd);
    // }

    $cmd = "cd $target && git pull";

    if(shell_exec($cmd)){
            echo json_encode(['code'=>0,'message'=>'ok']);
    }else{
            echo json_encode(['code'=>1,'message'=>'fail']);
    }

//网站链接指向该目录,可以同步到服务器

上一篇下一篇

猜你喜欢

热点阅读