编写钩子访问的接口


在public下新建githook.php文件,代码如下:

12345<?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.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

或者这个错误 We trust you have received the usual lecture from the local System
在宝塔上找到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

错误4:执行完接口每次都会出现一堆已更新的东西

打开终端,cd 到项目 根目录,执行 git pull --all 然后再执行 你脚本内的那个 git pull origin xxx(你要固定拉取的分支名)即可,然后再执行就会出现

************有看到 Already up-to-date 字眼表示测试成功,把cmd改回去

配置到gogs钩子去


点击项目git主页--》仓库设置,--》在左侧找到管理Web钩子,--》添加钩子--》输入githook.php地址,其他默认即可,点击添加,有多个服务器就配置多个钩子地址,客户端一旦推送,会同时触发


更多相关文章

  1. 学习笔记:php.ini的开发配置
  2. PHP:文件上传上传限制,文件大小不超过5M,文件后缀设置,检查图片合
  3. mysql创建存储过程失败1307错误解决
  4. Firefox求助,这黑黑的东西是什么啊
  5. Rust FFI 编程 - Rust导出共享库04
  6. 【Rust日报】2020-09-19 Rust 2021: 降低门槛
  7. 【Rust日报】2020-09-21 Rust宣布成立错误处理项目组
  8. 4月30日做作业卷子
  9. 07-Vue_生命周期钩子

随机推荐

  1. Android中自定义控件
  2. Missing styles. Is the correct theme c
  3. Android的Window类详解
  4. IBM谷歌等工程师撰写Android开发教程合集
  5. 打造android ORM框架opendroid(一)——OR
  6. Android API Guides---Web Apps
  7. Android Tool——Hierachy Viewer可视化
  8. 阅读《Android(安卓)从入门到精通》(9)——
  9. Android之数据存储-刘志远-专题视频课程
  10. 加快android的编译速度