在centos中搭建基于smart http的git server

来源:互联网 发布:java高并发视频教程 编辑:程序博客网 时间:2024/05/01 08:02

#

由于公司的特殊需求,需要将git集成到IBM的RTC里面,而RTC使用的是http,所以要只能放弃了git原生的ssh,转而使用smart http,git server搭建在centos系统上。博主在浏览了N多教程发现都是比较残缺的,并没有针对smart http的特殊需求,有一篇相对完整的但也有几个坑(博主为了填这几个坑吐了好多口老血,因此决定把教程记录到博客上防各位不时之需,该教程针对像博主这样的非专业运维的developer的手把手教程,欢迎指正!)

以下是主要的环境参数

  • 系统linux centos 7
  • git版本 2.6.0.0
  • 容器 Apache 2 .6.4(httpd)

1. 首先打开系统terminal,获取root操作权限(博主用的是Xshell远程登录):

  输入命令:sudo  su

这里写图片描述

系统要求输入用户密码:

完成后入下图所示

这里写图片描述

2. 安装httpd:

输入命令:yum install httpd (安装时除了输入“Y”确定外无特别需要注意的)

3. 安装gitweb(如不需要可不安装):

输入命令:yum install gitweb

4. 完成后创建一个git仓库,这里选择在/srv/目录下创建一个bare repo(若目录不同需要在稍后提到的配置文件中修改),取名为test.git

输入命令cd /srv
输入命令git init –bare test.git
这里写图片描述

5. 把该目录下文件所有者的组改成apache

输入命令:chown -R apache:apache test.git
这里写图片描述

6. 用vim编辑器修改httpd配置文件

输入命令:vim /etc/httpd/conf/httpd.conf

这里写图片描述
在文档中添加如下配置:

# 设置git所管理的工程的存放目录SetEnv  GIT_PROJECT_ROOT /srvSetEnv  GIT_HTTP_EXPORT_ALL# 对git库的各种请求,执行git-http-backend.cgiScriptAliasMatch \    "(?x)^/git/(.*/(HEAD | \    info/refs | \    objects/(info/[^/]+ | \     [0-9a-f]{2}/[0-9a-f]{38} | \     pack/pack-[0-9a-f]{40}\.(pack|idx)) | \    git-(upload|receive)-pack))$" \    /usr/local/libexec/git-core/git-http-backend/$1ScriptAlias / /usr/share/gitweb/gitweb.cgi#为git的http操作添加认证,认证信息存在git-auth文件中,关于此文件的配#置将会在稍后讲解<Location />        AuthType Basic        AuthName "Git Access"        AuthUserFile /var/www/git-auth        Require valid-user        AuthBasicProvider file</Location>

这里写图片描述

完成后输入wq保存文件

7. push的操作认证

a.打开刚刚创建的test.git仓库为config添加如下配置
输入命令: cd /srv/test.git/
这里写图片描述

b. 打开config文件添加如下内容

[http]
receivepack = true

这里写图片描述

完成后保存并退出

c. 再配置文件中定义的/var/www文件夹下添加git-auth密码文件
输入命令:cd /var/www
添加一个名为git(可自己定义)的账户
输入命令:htpasswd -c git-auth git

这里写图片描述

8. 重启httpd服务

输入命令:service httpd start

这里写图片描述

完成后可在客户端做clone和push的检查操作

(注意:如果系统用户没有权限,使用chmod 755 -R username 命令添加权限,否则推送会被拒)

至此!搭建完毕,博主没有配置gitweb不过相关的教程也很多而且相对简单,剩下的问题无非也就是linux的组权限问题,这个视个人环境做微调即可,如有不足之处还望不吝赐教!


参考链接:

http://particle128.com/posts/2014/12/git-server.html
https://git-scm.com/docs/git-http-backend
https://git-scm.com/book/be/v2/Git-on-the-Server-Smart-HTTP

0 0
原创粉丝点击