gitlab与github大致的功能类似,使用github创建的库必须是公有库,对于一些隐私文件就很难办了,所以 可以使用gitlab搭建一个属于自己的私有的github;
本文主要是讲如何利用gitlab提供的web-hooks,实现自动更新版本库到远程仓库中;
1. 首先需要在远程的git仓库服务器安装lamp或者lnmp环境(这里就直接使用yum安装lamp了);
yum install -y httpd mysql mysql-libs php php-mysql mysql-server php-bcmath php-gd php-mbstring
2. 编写一个用户触发的脚本
cat /var/www/html/update.php <?php //git仓库目录 $www_folder = "/home/apache/baby"; //执行指令 echo shell_exec(" cd $www_folder && git pull 2>&1"); ?>
3. 把update.php放在apache的web目录下,使它能被用浏览器访问到;
因为执行update.php脚本需要使用apache的启动用户的权限,所以下面的操作使用的都是apache用户;
4.创建密钥(登陆apache用户)
apache用户国为是yum安装httpd时自动创建的,所以默认是没有登陆权限和家目录的,需要改成如下:
grep ‘apache‘ /etc/passwd apache:x:48:48:Apache:/home/apache:/bin/bash
#修改好后,登陆apache su apache #创建密密钥 ssh-keygen -t rsa -C "admin@admin.com" #把apache用户目录下的.ssh/id_rsa.pub 内容复制到gitlab用户中的 SSH Keys,
把apache用户目录下的.ssh/id_rsa.pub内容复制到gitlab用户中的SSH Keys,
5. 克隆用户的版本库到本地
git clone git@gitlab.com:username/baby #gitlab.com :gitlab的域名(访问链接) #username : 用户名 #baby : gitlab的仓库名
6. 测试
现在可以使用其它的用户提交一个合并请求,然后master用户接受合并请
再登陆到apache服务器看有没有自动同步;
这个方式是只有合并其它分支到master主分支时才会被触发;
本文出自 “浅浅的淡淡” 博客,转载请与作者联系!
原文地址:http://cuixiang.blog.51cto.com/8204722/1734865