首页 > 代码库 > Centos6.8搭建Git服务http访问方式
Centos6.8搭建Git服务http访问方式
安装Git版本:git 2.10.0
Git访问方式:基于http的基本验证(非SSL)
1. 安装Apache软件:
[root@localhost ~]# yum install httpd
设置Apache在服务器启动时运行:
[root@localhost ~]# chkconfig --levels 235 httpd on
2. 安装依赖库:
[root@localhost ~]# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
[root@localhost ~]# yum install gcc perl-ExtUtils-MakeMaker
3. 卸载旧版git:
[root@localhost ~]# yum remove git
4. 安装git, 先进入需要安装git的目录、下载git、解压和编译安装:
[root@localhost ~]# cd /usr/local/src
[root@localhost src]# wget https://www.kernel.org/pub/software/scm/git/git-2.10.0.tar.gz
[root@localhost src]# tar -zvxf git-2.10.0.tar.gz
[root@localhost src]# cd git-2.10.0
[root@localhost git-2.10.0]# make prefix=/usr/local/git all
[root@localhost git-2.10.0]# make prefix=/usr/local/git install
5. 将git目录加入PATH:
[root@localhost git-2.10.0]# echo ‘export PATH=$PATH:/usr/local/git/bin‘ >> /etc/bashrc
[root@localhost git-2.10.0]# source /etc/bashrc
安装成功后就可以查看到git版本了:
[root@localhost git-2.10.0]# git --version
git version 2.10.0
6. 创建git仓库并初始化:
[root@localhost git-2.10.0]# mkdir -p /home/git/repositories/test.git
[root@localhost git-2.10.0]# cd /home/git/repositories/test.git
[root@localhost test.git]# git --bare init
Initialized empty Git repository in /home/git/repositories/test.git/
7. 给git仓库设置apache用户和用户组并设置权限:
[root@localhost test.git]# chown -R apache:apache /home/git/repositories/test.git
8.Apache的配置
创建新用户
[root@localhost test.git]# htpasswd -m -c /etc/httpd/conf.d/git-team.htpasswd <username>
注意:以后再分配用户的时候,此命令为:
[root@localhost test.git]# htpasswd -m /etc/httpd/conf.d/git-team.htpasswd <username>
然后输入该用户要使用的密码。
修改git-team.htpasswd文件的所有者与所属群组
[root@localhost test.git]# chown apache:apache /etc/httpd/conf.d/git-team.htpasswd
设置git-team.htpasswd文件的访问权限
[root@localhost test.git]# chmod 640 /etc/httpd/conf.d/git-team.htpasswd
修改apache配置文件httpd.conf
[root@localhost test.git]# vi /etc/httpd/conf/httpd.conf
将光标移至文件结尾(Shift+g),添加如下的内容:
<VirtualHost *:80> ServerName git.cnblogs.com SetEnv GIT_HTTP_EXPORT_ALL SetEnv GIT_PROJECT_ROOT /home/git/repositories ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/ <Location /> AuthType Basic AuthName "Git" AuthUserFile /etc/httpd/conf.d/git-team.htpasswd Require valid-user </Location> </VirtualHost>
ServerName是git服务器的域名或ip地址
/home/git/repositories是代码库存放的文件夹
ScriptAlias是将以/git/开头的访问路径映射至git的CGI程序git-http-backend
AuthUserFile是验证用户帐户的文件
保存并退出
重启apache使设置生效
[root@localhost test.git]# service httpd restart
9.gitweb的安装和配置
(1).安装gitweb
[root@localhost test.git]# yum install gitweb
(2). 修改git.conf
[root@localhost test.git]# vi /etc/httpd/conf.d/git.conf
将 "Alias /git /var/www/git" 改为 "Alias /gitweb /var/www/git"
(3). 修改gitweb.conf
[root@localhost test.git]# vi /etc/gitweb.conf
将#our $projectroot = "xxx"的#号去掉,xxx设置为git代码库所在的文件夹,这样:
our $projectroot = "/home/git/repositories";
(4). 用浏览器访问gitweb: http://服务器ip地址或者域名/gitweb
附加:
clone地址为:
http://服务器ip地址/git/test.git
注意git代码库所在的文件夹不要配置到这个路径中, /git/ 已经配置过转向到代码库。
这样每次pull、push都要输入用户名和密码。所以要设置用户名密码到http路径中,如:
http://用户名:密码@服务器ip地址/git/test.git
如果用户名是邮箱地址,需要把邮箱地址中的@改为 %40
http://xxx%40qq.com:密码@服务器ip地址/git/test.git
至于用户名是中文的话,直接去看看url编码。
以后如果想增加git项目,直接执行上面的第6、7步即可。
搞定!
Centos6.8搭建Git服务http访问方式