git码云配置web hook钩子实现自动部署,git权限等问题,LAMP
来源:互联网 发布:社交媒体网络安全问题 编辑:程序博客网 时间:2024/05/29 11:27
这几天用git的时候就看到git有一个非常方便的功能可以实现自动部署到服务器。然后我就看啊看啊看,搜啊搜啊搜,知道了这玩意儿叫hook脚本,当我们在本机push到git平台时,git平台监听到了push命令,去触发服务器上的hook脚本,实现服务器代码更新,不用每次在上服务器拉一下代码。
我在弄这个的时候遇到了很多问题,然而网上一搜,TMD就那几篇文章转过去转过来,根本不能解决我的问题!现在我就慢慢讲给大家。
基本是这个意思吧,说不出专业的词汇,哈哈哈。
我们还是来讲一讲真正的实现流程吧。
1.把你的项目放到git平台。这个不需要教了吧?需要教就自己去百度,哈哈。毕竟我这篇文章是教你弄web hook。
2.在服务器查看apache2(我用的apache服务)执行用户,执行代码:ps -ef | grep apache2 #我的服务名是apache2,这里根据自己真实的写,比如有的是httpd。
如上图,我apache的运行用户是www-data。
所以当你使用php(我用的PHP,灵活理解)执行shell脚本的时候会使用www-data用户去执行shell。我遇到的问题就在这里,出现了权限不正确。所以我们必须统一这个用户去执行所有的操作。
在服务器也要用这个用户配置好git公钥,如:
sudo -u www-data ssh-keygen -t rsa -C "xxxxx@xxxxx.com"
配置好公钥后,你的git才拥有在这个用户下执行pull 的权限。
3.使用apache执行用户克隆git平台上的代码,如:sudo -u www-data git clone git@xxxxxxx
当然可能会出现权限问题,说www-data用户 没有读写权限,你就需要把目录读写权限给www-data用户,这里也就不做讲解了。
当克隆完成后我们开始第四步:
4.创建一个接口,地址什么的自己配置就好,接口写一段儿执行shell的代码
我这里是:
<pre name="code" class="html"><?php shell_exec("cd /your/git/dir ; sudo -u www-data git pull 2<&1");
就这么简单一句,我们在上git平台上配置好这个接口,我们就可以使用hook了。
当你在本地push的时候,服务器就会调用这个接口执行sudo -u www-data git pull 实现自动部署。
在平台可以设置个密码,password字段,他是一个json 当你接口实际使用的时候需要经过判断是不是你的git平台在调用你的接口,如果不是你可屏蔽掉。
我的讲解就到这里了。
不信你试试?
我是因为这个权限问题搞了很久,如果还有问题我就没办法了,你就谷歌百度研究吧。
哈哈,顺便弄好了发一篇博客给我们看看,以免下次遇到问题有TMD是那几篇!!!
好了,就到这里吧。
谢谢大家来看!
- git码云配置web hook钩子实现自动部署,git权限等问题,LAMP
- git hook实现代码自动部署
- 185 git 使用 Git Hook 实现网站的自动部署
- 使用 Git Hook 实现网站的自动部署
- 使用 Git Hook 实现网站的自动部署
- git hook远程仓库实现网站的自动部署
- GIT服务器实现web代码自动部署
- GIT服务器实现web代码自动部署
- 203 git hook 一次自动部署实践
- 服务器上搭建git仓库与钩子hook的配置
- gitblit git SERVER window 安装配置 hook post-receive 自动部署
- gitblit git SERVER window 安装配置 hook post-receive 自动部署
- 搭建内部开发git服务器并使用hook实现自动部署
- Git hook (钩子文件)机制
- 利用svn钩子实现自动导出部署WEB应用
- git 配置本地钩子和服务器端钩子
- 实现git hooks自动持续部署
- git hooks 实现网站的自动部署
- 第三方apk内置因签名导致SystemUI未启动启动问题案例分析
- 排序算法:插入 冒泡 快速排序
- 关于时间格式yyyy-mm-dd 格式在ie8返回NAN问题
- MySql免安装版配置简介
- Pyqt5系列(四)-基本界面组件之Dialog(2)
- git码云配置web hook钩子实现自动部署,git权限等问题,LAMP
- Eclipse中tomcat插件配置
- 浅谈UML学习笔记之类图
- sizeof()的使用及各种数据类型的字节大小
- 排序算法:推排序
- 在php中常常遇见的错误
- C#中正则表达式的使用
- PPPcloud云主机免费送!
- Android HashMap循环遍历方式及其性能对比 (十一)