用Apache配置Git服务器
用Apache配置Git服务器
安装环境
- Windows 2003
- Apache openlogic-apache-2.2.15-windows-ins-openssl-1
- Git-1.8.1.2-preview20130201
参考资源:
- 搭建 Windows 上 Apache + Git 服务器
- msysgit+apache安装说明 - git服务器部分
- Hosting a Git server under Apache on Windows
- apache账号密码限制用户访问
虽然已经有不少的参考的资源,但是对于不熟悉Apache和Git的新手在安装和使用过程中还是遇到一些问题。记录一下自己遇到的主要问题和整理下相关资源。
局限性:只是在局域网内搭建的Git Server如果需要支持外网访问,需要参考其他资料。
下载安装文件
安装文件
- Apache默认安装
- Git安装这里需要注意的是,网上有些文章声称,需要在安装时选择 Run git from the Windows Command prompt。对此持保留意见,因为不选择这一项也是可以的。不过为了谨慎起见,还是选择此项为好。
配置Git
全部安装完成后,主要的工作就是配置Apache的config文件。 找到config文件的地址:C:\Program Files\Apache Software Foundation\Apache2.2\conf
在config文件的后面追加下面内容
- 第一句是我们Git的目标文件夹地址
- 第二句要注意后面的空格和参数1,有文章说随便指定参数也可以,比如设置成2,我没有试验也没有了解原理。
- 第三句主要ScriptAliasMatch加空格后的字符串要在一行上。
- git-http-backend.exe 是在Git的安装文件夹下找到。
- 如果 git-http-backend.exe不能执行,提示没有找到libiconv-2.dll,该文件位于 C:\Program Files\Git\bin。复制到 C:\Program Files\Git\libexec\git-core
- 注意<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的基本配置,可以通过命令行创建库。
- 创建文件夹D:Reposiotry
- 用命令行进入Reposiotry
- 执行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>
- 在C:\Program Files\Apache Software Foundation\Apache2.2\bin中找到.passwd和htpassword,复制到C:/htpasswd/
- 创建用户名和密码,有两种方式
- 通过命令行行创建
- 需要在C:\Program Files\Apache Software Foundation\Apache2.2\bin目录中,或者设置这个目录到环境变量中
- 执行命令htpasswd -cmb htpassword abc 123456可以获得.passwd和htpassword
- 关于更多的htpasswd 命令参考apache htpasswd命令用法详解
- 通过在线的工具生成
- HTPASSWD GENERATOR – CREATE HTPASSWD
- 把生成出来的内容考到.passwd和htpassword中
- 通过命令行行创建
- 重启服务器用Source Tree 测试
其他学习资源
- Git详解系列 学习Git相关内容