1、概要流程
2、准备工作
gogs服务器
linux网站服务器(宝塔)
本地客户端
3、编写钩子访问的接口
<?PHP $cmd = "cd /www/wwwroot/testfc/pro/ && git reset --hard origin/master && sudo git pull origin master 2>&1"; $res = array(); exec($cmd,$res); var_dump($res);
有多台服务器就每个服务器的网站public下都加这个,然后配置到gogs服务器去
4、测试接口
4.1 先把cmd命令换成 $cmd = "cd /www/wwwroot/testfc/pro/ sudo git pull origin master 2>&1"; 测试下
var_dump($res); 打印出错误
可能会出现以下错误:
错误1:Warning: scandir() has been disabled for security reasons in…
原因:LNMP 0.9禁用了部分存在危险的PHP函数,当前是exec无法执行
找到PHP版本,修改配置信息,搜索 disable_functions 把它后面的 exec去掉,保存,重启PHP
错误2:sudo: no tty present and no askpass program specified
在宝塔上找到etc/sudoers 编辑 ,加入 %www ALL = nopASSWD: ALL
错误3:fatal: Could not read Username for
找到项目 .git/config文件夹 /www/wwwroot/testfc/pro/.git/config
在ip前面加上用户名与密码格式如: url = http://username:psd@xxx.xxx.xxx.xxx:3000/aaa/pro.git
有看到 Already up-to-date 字眼表示测试成功,把cmd改回去
5、配置到gogs钩子去
点击项目git主页--》仓库设置,--》在左侧找到管理Web钩子,--》添加钩子--》输入githook.PHP地址,其他默认即可,点击添加,有多个服务器就配置多个钩子地址,客户端一旦推送,会同时触发
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。