Centos7 以http方式搭建git服务器 apache+git

用到apachegit

第一步,安装httpdgit

yum install git httpd

第二步,启动httpd服务

systemctl start httpd.service

第三步修改firewalld配置文件和重启firewalld

firewall-cmd --zone=public --add-port=80/tcp --permanent
systemctl restart firewalld.service

第四步,创建git仓库

mkdir -p /opt/http_git/test.git
cd /opt/http_git/test.git
git init --bare

//设置权限
chown -R apache:apache /opt/http_git

第五步,创建账号

// testuser为账户名 可以随意定义
htpasswd -m -c /etc/httpd/conf.d/git-team.htpasswd testuser
 
// 修改git-team.htpasswd文件的所有者与所属群组
chown apache:apache /etc/httpd/conf.d/git-team.htpasswd
 
// 设置git-team.htpasswd文件的访问权限
chmod 640 /etc/httpd/conf.d/git-team.htpasswd

第六步,设置apache,使其请求转发到git-cgi:

vi /etc/httpd/conf/httpd.conf
 
// 在最后一行IncludeOptional conf.d/*.conf的上面添加下面内容:
<VirtualHost *:80>
        ServerName 192.168.1.55
        SetEnv GIT_HTTP_EXPORT_ALL
        SetEnv GIT_PROJECT_ROOT /opt/http_git
        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
/opt/http_git是代码库存放的文件夹
ScriptAlias是将以/git/开头的访问路径映射至git的CGI程序git-http-backend
AuthUserFile是验证用户帐户的文件

第七步,重启httpd

systemctl restart httpd.service

之后就可以进行clone

git clone http://server/git/test.git

如何出现push权限被禁止的话,需要关闭selinux

//查看selinux状态
getenforce

//临时关闭selinux
setenforce 0

//永久关闭selinux
vi /etc/sysconfig/selinux
//将SELINUX=enforcing改为SELINUX=disabled
//重启服务器即可

 

posted @ 2019-10-06 13:08  Tsubasa0769  阅读(1608)  评论(0编辑  收藏  举报