记录我工作学习生活中的点点滴滴......

利用git的hook自动部署代码
发布于 基础编程
2016-01-22 16:28:45
2042
0

git@osc也提供了web hook的功能,可以用来自动部署代码了。

具体的代码不提供了,网上一搜一大堆,下面只是列举几个坑,有更好的解决办法,但是我只是写出了最适合我的。

1、需要输入密码

这里可以在git clone的时候加上账号密码 git clone http://账号:密码@地址,当账号中出现@的时候 用%40代替即可

2、exec、shell_exec这类函数没办法使用

在lnmp的环境包中这个函数被禁用了,在php.ini的displays_function中去掉即可

3、手动在目录执行git pull可以更新代码,但是通过hook的就是不会更新

首先试试php depoy.php会不会更新代码,如果可以那就是权限问题,如果不可以,那就是代码写的有问题,代码问题自行解决,权限问题给一下参考

1)apache/nginx用户是否有git命令的执行权限

2)apache/nginx在当前目录的可写权限

3)当前目录下.git目录下的文件的可写权限

我就是调试了好久发现的第三种情况,之前执行的时候在命令行下,.git里面文件都是root的,无法写入,而在当前目录执行chown www:www -R .的时候不会包含隐藏目录,导致这里一直没权限,自动更新失败。改了后就可以正常更新了




分享本文到:
除非特殊注明,本文版权归原作者所有,欢迎转载!转载请注明版权以及本文地址,谢谢。
转载保留版权:Pakey's BLog >>基础编程 >>利用git的hook自动部署代码
本文地址:http://www.pakey.net/blog/LiYonggitDehookZiDongBuShuDaiMa.html