webhook自动部署
一,linux上安装git(客户端)
yum install -y git
安装完成进行查看:
git version
输出了版本号表示安装成功
二,编写webhook脚本
在项目根目录创建 webhook.php
php需要开启shell_exec
&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
解决:在项目目录执行命令
cd .git/
chown www:www FETCH_HEAD
2,could not read Username for 'https://gitee.com': No error
解决:进入项目目录/.git 目录,修改.git/config 文件
3,git权限报错error: insufficient permission for adding an object to repository database
//这个用户指的是php-fpm.conf里面设置的执行php进程的用户.我的是www,有的项目可能写的是其他
chown -R www:www /xxx/tp
如果服务器安装的是宝塔面板,可以试试宝塔webhook同步git 点我跳转