用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中
- HTPASSWD GENERATOR – CREATE HTPASSWD
- 通過命令行行創建
- 重啟服務器用Source Tree 測試
其他學習資源
- Git詳解系列
學習Git相關內容