Centos7 以http方式搭建git服务器 apache+git
用到apache和git
第一步,安装httpd和git
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 //重启服务器即可