用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相關內容


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM