CentOS搭建GIT服务器【二】-HTTP源码访问及smart http协议

搭建完git之后,我们希望可以在线看见源码,以及使用http协议上传下载源码。

安装gitweb、httpd:

yum install gitweb
yum install httpd

gitweb默认安装到了/var/www/git下,其配置文件在/etc/gitweb.conf下,另外,httpd的配置文件/etc/httpd/conf.d/git.conf。安装完可以进去看一眼。

修改/etc/gitweb.conf,设置项目路径:

新增一行:

$projectroot = "/var/www/git" 

如上配置我们准备把仓库项目通过软连接到/var/www/git下(也有人把这个目录链接到仓库中,然后下面因为还有一些css、js、图片什么的,比较麻烦,这是我们这种方式方便点)

修改/etc/httpd/conf.d/git.conf(这其实是一个apache的配置文件)

Alias /git /var/www/git #别名映射,我们的URL就是http://192.168.x.xx/git/,会访问/var/www/git这个目录

<Directory /var/www/git>
  Allow from all
  AllowOverride all
  Order allow,deny
  #open smart http(设置下面的几行变量,就会打开git自带的smart http协议,可以通过git clone http://192.168.x.xx/git/bxcs.git这种形式操作)
  SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER
  SetEnv GIT_HTTP_EXPORT_ALL
  SetEnv GIT_PROJECT_ROOT /var/www/git
  Options +ExecCGI
  AddHandler cgi-script .cgi
  DirectoryIndex gitweb.cgi
  SetEnv GITWEB_CONFIG /etc/gitweb.conf
  Dav On
  RewriteEngine Off
</Directory>

重启httpd:

/etc/init.d/httpd restart

将项目软连接到apache要访问的目录上去:

ln -s /home/git/repositories/gxcs.git /var/www/git/

OK,可以从浏览器访问了了:

http://192.168.x.xx/git/

如果要是不能显示,一般是仓库目录权限问题。

smart http方式操作:

git clone http://192.168.x.xx/git/bxcs.git

但是push等操作需要重新配权限,在上面apache配置文件中设置配置文件路径。

过程中主要参考了如下博文:

http://blog.chinaunix.net/uid-20940095-id-3447022.html

http://hi.baidu.com/configuration/item/8e73c1375536c18af5e4ad89

原文地址:https://www.cnblogs.com/radio/p/3780010.html