Git Web Hooks 的部署

Git Web Hooks 的部署

  • [Web Hooks 的介绍](#Web Hooks 的介绍)
  • [Web Hooks 在Linux中的坑](#Web Hooks 在Linux中的坑)
  • [Web Hooks 在Windows Server中的坑](###Web Hooks 在Windows Server中的坑)

Web Hooks 的介绍

Git钩子功能(callback),是帮助用户push了代码后,自动回调一个您设定的http地址。 这是一个通用的解决方案,用户可以自己根据不同的需求,来编写自己的脚本程序(比如发邮件,自动部署等)

Web Hooks 在Linux中的坑

流程大概是这样的:

  1. 编写含有git pull的Shell脚本;
  2. 创建http入口文件(我用PHP写的)
  3. 通过PHP调用Shell脚本进行代码更新
  4. 在git仓库那里设置git web hooks

我linux上是nginx,以nginx为例子

坑:
  1. git pull需要帐号验证 解决办法:需要添加ssh Key;(添加ssh Key教程自行查找)
  2. PHP 调用 git pull 失败,错误不显出 解决办法 : 使用 exec('git pull 2>&1', $outpur); print_r($output);打印错误信息。
  3. 错误提示:Permission denied(明明添加了ssh Key,还提示这个) 原因:因为我的PHP是nginx进程去调用git pull,nginx进程对应的用户是www www 30016 0.0 1.4 21236 15100 ? S Aug10 0:00 nginx: worker process 好吧,切换到www创建ssh Key su www 什么? This account is currently not available. 哦,不可用。去改咯。 vim /etc/passwd 找到www把/sbin/nologin改成/bin/bash 切换到www用户添加ssh Key ok了。
  4. 其实方法有很多,以上只是其中一种,例如:可以直接使用已有ssh Key的用户去启动nginx或者可以直接把已有的.ssh文件复制到www用户目录下(前提是知道用户目录在哪).
  5. 有时候git pull会出错,完整的shell贴出来参考一下
#!/bin/bash

PATH='/home/www/xxx'
USER='www'
USERGROUP='www'

echo "Start."
cd $PATH
git reset --hard origin/master
git clean -f
git pull
git checkout master
chown -R $USER:$USERGROUP $PATH
echo "Emd."

Web Hooks 在Windows Server中的坑

流程和Linux上差不多,问题还是在git pull上面; 我Windows Server装的是Apache,以apache为例;

坑:

启动apache的用户是System。什么鬼,System的用户目录在哪,然而我不知道,也不会切换成System用户,不知道能不能切换,来个这样的提示。 Could not create directory '/home/SYSTEM/.ssh'. Host key verification failed. fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. #####然后 我去服务那里找出apache对应的服务(如果用集成环境的可能名字不一样,wamp下的叫wampapache),选中->属性->登录->帐户改为已添加ssh Key的用户,保存,重启服务。成功执行git pull。

后面的和linux上的一样了

转载于:https://my.oschina.net/hongyeah/blog/732151

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值