设为首页 收藏本站
查看: 1220|回复: 0

[经验分享] Windows使用Apache2配置Git服务器

[复制链接]

尚未签到

发表于 2018-1-15 13:06:41 | 显示全部楼层 |阅读模式
  Windows使用Apache2配置Git服务器
  本文地址:http://www.cnblogs.com/cnscoo/p/3373095.html
  Git下载:
  网站:https://code.google.com/p/msysgit/
  文件:https://msysgit.googlecode.com/files/Git-1.8.4-preview20130916.exe
  Apache下载:
  网站:http://httpd.apache.org/
  文件:http://101.36.96.118/data/4/57/b5/57b5b14df1e1dcffaf5a302c93c57b2d.zip/realuri/apache//httpd/binaries/netware/httpd_2.4.6-netware-bin.zip
  ·以上文件安装和配置过程就省略了,这个网络上的资料比较多的。
  1.打开Apache的 httpd.conf 配置文件,修改 <Directory /> 中的 Deny from all 为 Allow from all,并在配置文件末尾添加
  

1 #  

2 # Git Server Configured  

3 #  

4 Include conf/extra/httpd-git.conf  

  ·这个配置可以避免在主要的配置文件中添加太多的内容,将我们的配置单独放在一个文件中。
  2.在Apache的 conf/extra 文件夹中新建配置文件 httpd-git.conf,然后在文件中添加以下内容
  

1 # 设置Git管理库位置  

2 SetEnv GIT_PROJECT_ROOT E:/GitServer # 这里的E:/GitServer 表示Git服务的库位置  

3 SetEnv GIT_HTTP_EXPORT_ALL  

4 SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER  

5  
6 # 设置Git处理方式,其中的 ...^/git/(.*/... 部分也可以写成 ...^/(.*/...
  
7 # 前者表示访问的时候使用 http://ServerName/git/Git库 的方式访问,后者使用 http://ServerName/Git库 的方式访问
  
8 # 下面的 F:/Program Files/Git/libexec/git-core/git-http-backend.exe 是Git的http处理程序,在Git中有的。
  
9 ScriptAliasMatch "(?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))$" "F:/Program Files/Git/libexec/git-core/git-http-backend.exe/$1"
  
10
  
11 # Enable mod_rewrite
  
12 RewriteEngine On
  
13
  
14 # Detect git push
  
15 RewriteCond %{QUERY_STRING} service=git-receive-pack [OR,NC]
  
16 RewriteCond %{REQUEST_URI} ^/*.git/.*/git-receive-pack$ [NC]
  
17 RewriteRule .* - [E=AUTHREQUIRED:yes]
  

  保存这个文件,将Git目录中的 bin/libiconv-2.dll 文件复制到 Git下的 libexec\git-core\ 中,这个是 git-http-backend.exe 需要用到的组件。然后(重)启动 Apache 服务器。
  3.在E盘创建文件夹GitServer,并运行以下命令
  

1 git init --bare 项目名.git  # 生成项目库文件夹  

2 cd 项目名.git  

3 git update-server-info  

  4.现在使用 http://localhost/git/项目名.git 的路径就可以克隆项目了,然后修改文件、add、commit、push...
  -- 以下为可选项:
  5.配置访问权限
  在Apache的conf/extra/httpd-git.conf中添加:
  

1 <Location /git/> # 这个路径和上面的ScriptAliasMatch处需一致  

2     AuthType Basic  

3     AuthName "GIT Server"  
4     AuthUserFile "E:/.htpasses" # 这个是需要验证的密码文件
  
5     Require valid-user # 据说如果将“Require valid-user”注释掉,就不需要密码认证了,在内网用时会很方便,但这是只允许pull,而不允许push。
  
6 </Location>
  

  然后在使用Apache的 htpasswd.exe 工具生成对应的密码文件,运行以下命令
  

1 htpasswd -bc E:\.htpasses 用户名 密码  

  如果只是要添加用户,则把 -bc 的操作改成 -b 操作即可。重启服务器,再操作该Git项目时就需要密码验证了。
  6.添加Git的Web浏览工具gitphp
  下载gitphp: http://www.gitphp.org
  解压到 E:\GitServer (可以是其他位置) 并将文件夹命名为 gitphp,然后在Apache的conf/extra/httpd-git.conf中添加配置
  

1 <IfModule alias_module>  
2     Alias /gitphp "E:\GitServer\gitphp"
  
3 </IfModule>
  
4 <Directory "E:\GitServer\gitphp">
  
5     Options Indexes FollowSymLinks
  
6     AllowOverride None
  
7     Order allow,deny
  
8     Allow from all
  
9 </Directory>
  
10 <Location /gitphp/> #这里也是添加密码验证
  
11     AuthType Basic
  
12     AuthName "GIT Server"
  
13     AuthUserFile "E:/.htpasses"
  
14     Require valid-user
  
15 </Location>
  

  然后将其中的 config/gitphp.conf.php.example 复制新文件为 config/gitphp.conf.php,并修改其中的配置项,比如我这里修改的就是:
  

1 $gitphp_conf['gitbin'] = 'F:\\Progra~1\\Git\\bin\\git.exe'; // git.exe文件路径  
2 $gitphp_conf['projectroot'] = 'E:\\GitServer\\'; // Git项目库位置(不是项目文件夹)
  

  然后重新启动Apache,使用浏览器浏览 http://localhost/gitphp则就可以看到Git的Web浏览工具了。
  很晚了,打完收工。今晚又被公司加班了,此夜绵绵无绝期啊...

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-435329-1-1.html 上篇帖子: [Git] git revert ( revert commit 和 revert merge) 下篇帖子: git入门四(分支创建合并)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表