用Apache配置Git服务器

用Apache配置Git服务器

安装环境

  1. Windows 2003
  2. Apache openlogic-apache-2.2.15-windows-ins-openssl-1
  3. Git-1.8.1.2-preview20130201

参考资源:

  1. 搭建 Windows 上 Apache + Git 服务器
  2. msysgit+apache安装说明 - git服务器部分
  3. Hosting a Git server under Apache on Windows
  4. apache账号密码限制用户访问

虽然已经有不少的参考的资源,但是对于不熟悉Apache和Git的新手在安装和使用过程中还是遇到一些问题。记录一下自己遇到的主要问题和整理下相关资源。

局限性:只是在局域网内搭建的Git Server如果需要支持外网访问,需要参考其他资料。

下载安装文件

  1. msysgit
  2. Apache
  3. Source Tree

安装文件

  1. Apache默认安装
  2. Git安装这里需要注意的是,网上有些文章声称,需要在安装时选择 Run git from the Windows Command prompt。对此持保留意见,因为不选择这一项也是可以的。不过为了谨慎起见,还是选择此项为好。

配置Git

全部安装完成后,主要的工作就是配置Apache的config文件。 找到config文件的地址:C:\Program Files\Apache Software Foundation\Apache2.2\conf 
在config文件的后面追加下面内容

  1. 第一句是我们Git的目标文件夹地址
  2. 第二句要注意后面的空格和参数1,有文章说随便指定参数也可以,比如设置成2,我没有试验也没有了解原理。
  3. 第三句主要ScriptAliasMatch加空格后的字符串要在一行上。
  4. git-http-backend.exe 是在Git的安装文件夹下找到。
    • 如果 git-http-backend.exe不能执行,提示没有找到libiconv-2.dll,该文件位于 C:\Program Files\Git\bin。复制到 C:\Program Files\Git\libexec\git-core
  5. 注意<Directory>中的目录位置
SetEnv GIT_PROJECT_ROOT D:/Repository
SetEnv GIT_HTTP_EXPORT_ALL 1
ScriptAliasMatch"(?x)^/(.*/(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))$""C:/Program Files/Git/libexec/git-core/git-http-backend.exe/$1"

<Directory"C:/Program Files/Git/libexec/git-core/">
OptionsIndexesFollowSymLinks
AllowOverrideAuthConfig
Order allow,deny
Allowfrom all
</Directory>

完成上述操作就已完成Git的基本配置,可以通过命令行创建库。

  1. 创建文件夹D:Reposiotry
  2. 用命令行进入Reposiotry
  3. 执行git init --bare Test.git

Test的空库创建好后,可以用我们的Source Tree获取测试。

授权

配置好基本Git后,需要做授权设置,首先也是需要在config中加入以下内容:

  • 注意AuthUserFile后面的内容是不加引号的
<Location />
AuthType Basic
AuthName “Repository”
AuthBasicProvider file
AuthUserFile C:/htpasswd/.passwd
Require valid-user
</Location>
  1. C:\Program Files\Apache Software Foundation\Apache2.2\bin中找到.passwd和htpassword,复制到C:/htpasswd/
  2. 创建用户名和密码,有两种方式
    1. 通过命令行行创建
      1. 需要在C:\Program Files\Apache Software Foundation\Apache2.2\bin目录中,或者设置这个目录到环境变量中
      2. 执行命令htpasswd -cmb htpassword abc 123456可以获得.passwd和htpassword
      3. 关于更多的htpasswd 命令参考apache htpasswd命令用法详解
    2. 通过在线的工具生成
      1. HTPASSWD GENERATOR – CREATE HTPASSWD
      2. 把生成出来的内容考到.passwd和htpassword中
  3. 重启服务器用Source Tree 测试

其他学习资源

  1. Git详解系列 学习Git相关内容
posted @ 2013-06-05 16:27  Shawdren  阅读(3242)  评论(0编辑  收藏  举报