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,并在配置文件末尾添加

 #
# Git Server Configured
#
Include conf/extra/httpd-git.conf

·这个配置可以避免在主要的配置文件中添加太多的内容,将我们的配置单独放在一个文件中。

2.在Apache的 conf/extra 文件夹中新建配置文件 httpd-git.conf,然后在文件中添加以下内容

 # 设置Git管理库位置
SetEnv GIT_PROJECT_ROOT E:/GitServer # 这里的E:/GitServer 表示Git服务的库位置
SetEnv GIT_HTTP_EXPORT_ALL
SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER # 设置Git处理方式,其中的 ...^/git/(.*/... 部分也可以写成 ...^/(.*/...
# 前者表示访问的时候使用 http://ServerName/git/Git库 的方式访问,后者使用 http://ServerName/Git库 的方式访问
# 下面的 F:/Program Files/Git/libexec/git-core/git-http-backend.exe 是Git的http处理程序,在Git中有的。
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" # Enable mod_rewrite
RewriteEngine On # Detect git push
RewriteCond %{QUERY_STRING} service=git-receive-pack [OR,NC]
RewriteCond %{REQUEST_URI} ^/*.git/.*/git-receive-pack$ [NC]
RewriteRule .* - [E=AUTHREQUIRED:yes]

保存这个文件,将Git目录中的 bin/libiconv-2.dll 文件复制到 Git下的 libexec\git-core\ 中,这个是 git-http-backend.exe 需要用到的组件。然后(重)启动 Apache 服务器。

3.在E盘创建文件夹GitServer,并运行以下命令

 git init --bare 项目名.git  # 生成项目库文件夹
cd 项目名.git
git update-server-info

4.现在使用 http://localhost/git/项目名.git 的路径就可以克隆项目了,然后修改文件、add、commit、push...

-- 以下为可选项:

5.配置访问权限

在Apache的conf/extra/httpd-git.conf中添加:

 <Location /git/> # 这个路径和上面的ScriptAliasMatch处需一致
AuthType Basic
AuthName "GIT Server"
AuthUserFile "E:/.htpasses" # 这个是需要验证的密码文件
Require valid-user # 据说如果将“Require valid-user”注释掉,就不需要密码认证了,在内网用时会很方便,但这是只允许pull,而不允许push。
</Location>

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

 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中添加配置

 <IfModule alias_module>
Alias /gitphp "E:\GitServer\gitphp"
</IfModule>
<Directory "E:\GitServer\gitphp">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Location /gitphp/> #这里也是添加密码验证
AuthType Basic
AuthName "GIT Server"
AuthUserFile "E:/.htpasses"
Require valid-user
</Location>

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

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

然后重新启动Apache,使用浏览器浏览 http://localhost/gitphp则就可以看到Git的Web浏览工具了。

很晚了,打完收工。今晚又被公司加班了,此夜绵绵无绝期啊...

Windows使用Apache2配置Git服务器的更多相关文章

  1. Windows/Linux 环境搭建Git服务器 + vs2012集成git

    1. 下载.安装Git 我的系统是Windows 7,需要安装Git for Windows. 下载地址: http://code.google.com/p/msysgit/downloads/lis ...

  2. Windows操作系统下搭建Git服务器和客户端。

    本文将介绍如何在Windows操作系统下搭建Git服务器和客户端.服务器端采用的是Bonobo Git Server,一款用ASP.NET MVC开发的Git源代码管理工具,界面简洁,基于Web方式配 ...

  3. Windows 使用 Gogs 搭建 Git 服务器(转)

    Windows 使用 Gogs 搭建 Git 服务器   随便说两句 之前有使用 Gitblit 在Windows搭建Git服务器,用的也挺好的,可能安装起来略麻烦一点.现在全用 Gogs 在wind ...

  4. Windows平台下搭建Git服务器的图文教程

    Git没有客户端服务器端的概念,但是要共享Git仓库,就需要用到SSH协议(FTP , HTTPS , SFTP等协议也能实现Git共享,此文档不讨论),但是SSH有客户端服务器端,所以在window ...

  5. Windows平台下搭建Git服务器的图文教程(转发)

    Git没有客户端服务器端的概念,但是要共享Git仓库,就需要用到SSH协议(FTP , HTTPS , SFTP等协议也能实现Git共享,此文档不讨论),但是SSH有客户端服务器端,所以在window ...

  6. [转载]Ubuntu安装配置 git 服务器和客户端

    原文地址:Ubuntu安装配置 git 服务器和客户端作者:ding404 1.配置前准备 服务器:安装ssh server另外还装了gitosis做git的权限管理 sudo apt-get ins ...

  7. Windows下配置Git服务器和客户端 超全

    为了配合Redmine使用,特地用Git来做版本控制. Git Candy© 是一个基于ASP.NET MVC的Git分布式版本控制平台,Git Candy的目标是轻松干掉Bonobo,逐渐追赶Git ...

  8. Windows下配置Git服务器和客户端

    http://www.cnblogs.com/lwme/archive/2012/12/25/configuring-git-server-and-client-on-windows.html] 选择 ...

  9. 在windows 环境下对于 git 服务器的安装和使用

    前言: 虽然说在团队开发的时候会有版本控制服务器,但是个人自己开发的时候,有的时候也需要有个版本控制下,比如,你改好了一个小的功能,然后在这个功能上继续扩展,结果扩展不成功,于是回到这个小功能上去.当 ...

随机推荐

  1. 一个不喜欢读书的Javaer的读书单

    很可惜,从我一开始学技术开始,我就不喜欢看书,严重的时候翻不到两页就会开始狂打瞌睡.很幸运,有互联网能够为我提供很多知识,甚至一些知识从网上看来的会更加权威一些.但是,我的经验告诉我,无论是从功利性的 ...

  2. [ES6] 23. Rest Parameters & Spread Parameters

    Rest Parameters: In ES5, when you don't know how many paramters will be passed in, you can use argum ...

  3. Linux 内核进程管理之进程ID 。图解

    http://www.cnblogs.com/hazir/tag/kernel/ Linux 内核进程管理之进程ID   Linux 内核使用 task_struct 数据结构来关联所有与进程有关的数 ...

  4. Linux--------------安装nginx ftp

    阿里云服务器ECS centos7.2搭建nginx环境以及负载均衡 http://blog.csdn.net/ul646691993/article/details/52104082

  5. JS设置打印页面并调用本地打印机打印页面

    <script type="text/javascript"> var hkey_key; var hkey_root = "HKEY_CURRENT_USE ...

  6. HTML文本格式化

    文本格式化标签: 标签 描述 <b> 定义粗体文本. <big> 定义大号字. <em> 定义着重文字. <i> 定义斜体字. <small> ...

  7. 【转】数据库SQL优化大总结之 百万级数据库优化方案

    原帖地址:http://www.cnblogs.com/yunfeifei/p/3850440.html#undefined 1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 or ...

  8. android线程池ThreadPoolExecutor的理解

    android线程池ThreadPoolExecutor的理解 线程池 我自己理解看来.线程池顾名思义就是一个容器的意思,容纳的就是ThreadorRunable, 注意:每一个线程都是需要CPU分配 ...

  9. 各种排序算法及c语言实现

    插入排序O(n^2) 冒泡排序 O(n^2) 选择排序 O(n^2) 快速排序 O(n log n) 堆排序 O(n log n) 归并排序 O(n log n) 希尔排序 O(n^1.25) 1.插 ...

  10. 从两个集合里排除重复的写法(适用:DB表和字段都很多,表间有关联的情况)

    获取其中一张表bulletinred为1的内容: public IList<BRShow> GetBulInfo() { var result = from a in ((Entities ...