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']);
}
//网站链接指向该目录,可以同步到服务器
网友评论