webhook自动部署
一,linux上安装git(客户端)
yum install -y git
安装完成进行查看:
git version
输出了版本号表示安装成功
二,编写webhook脚本
在项目根目录创建 webhook.php
php需要开启shell_exec
<?php
$pwd = getcwd();
$command = 'cd ' . $pwd . ' && git pull origin master 2>&1'; // 2>&1 是输出错误,有利于调试
$output = shell_exec($command);
file_put_contents('./webhook.log', $output);// 输出内容保存到日志,需要注意日志文件要有足够的权限
print $output;
?>
三,配置码云webhook回调
四,提交到master分支测试自动更新
五,遇到的问题
1,.git/FETCH_HEAD: Permission denied 的解决方法
原因分析:.git/FETCH_HEAD的这个文件所属组和所属主是root权限,而我webhook的用户组是www
解决:在项目目录执行命令