在 Windows 上使用 Apache 設置 git-http-backend 的步驟是什麼?
我想使用“Smart-HTTP”方法設置一個 Git 伺服器。但是,我很難讓它在 Windows 中工作,而且我是 Apache 的新手。我的 httpd.conf,部分:
SetEnv GIT_PROJECT_ROOT "d:/repositories" SetEnv GIT_HTTP_EXPORT_ALL ScriptAlias /git/ "C:/Program Files/Git/libexec/git-core/git-http-backend.exe" <VirtualHost 172.16.0.5:80> <LocationMatch "^/git/.*/git-receive-pack$"> AuthType Basic AuthName "Git Access" Require group committers </LocationMatch> </VirtualHost>
有人可以提供在 Windows 上使用 git-http-backend 設置 Git 伺服器的步驟嗎?
有一些小細節可以讓它在 Windows 上執行,但我已經通過以下配置成功地做到了這一點:
SetEnv GIT_PROJECT_ROOT d:/Export/GIT/ SetEnv GIT_HTTP_EXPORT_ALL ScriptAlias /git/ "C:/Progra~1/Git/libexec/git-core/git-http-backend.exe/" <Directory "C:/Program Files/Git/libexec/git-core/"> Options +ExecCGI Allow From All </Directory>
我強烈建議您查看 apache 日誌和事件查看器以查看問題所在。
例如,
libiconv.dll
找不到。在 Windows 中,DLL 文件需要存在於$PATH
, 或與文件相同的文件夾中.exe
。最簡單的解決方法是複製文件。- 在 Apache 中,需要設置權限才能執行執行檔(
ExecCGI
選項)。現在,要繼續調試,這裡有一些指示。
監控 apache 日誌的最簡單方法是打開“Git bash”外殼,然後執行以下命令:
tail -f /c/Program\ Files/Apache\ Software\ Foundation/Apache2.2/logs/{access,error}.log &
您可以使用 TAB 補全輸入此命令和路徑,然後按 2x TAB 以獲取建議列表。最後
&
將其變成後台程序。每次您發出請求或重新啟動 apache 時,新的日誌行都會在您的螢幕上滾動。
tail
可以使用以下任一方法停止該過程:jobs # See the background jobs kill %1 # Kill the specific process
要麼:
fg # Bring the first job in the foreground Ctrl+C # Kill the foreground process
不要嘗試在瀏覽器中打開 git URL,那是行不通的。相反,在同一個 GIT Bash shell 中,執行
git clone
命令。例如:git clone http://localhost/git/somefolder.git
…您會看到日誌滾動顯示哪裡出了問題。
由於
git-http-backend
不提供任何 HTML 前端,我可以為此全心推薦gitphp(注意有多個項目名稱幾乎相同)。它易於設置,並且在建構時也考慮到了 msysGit 支持。這應該為您提供一個很好的 Web 界面來瀏覽所有可用的儲存庫。我遇到了 git 文件夾中的空格問題,最好避免這些問題。
如果您想記住密碼,複製 HTTP url 至少需要 msysGit 1.7.1。密碼可以儲存在
_netrc
配置文件文件夾 (%USERPROFILE%
) 中的文件中,佈局如下:machine git.mydomain.com login MyAccount password MyPassword
或者,您可以在複製 URL 中指定憑據,但這會破壞子模組。
腳註:當您的伺服器也支持 IIS 7 和 .NET 4 時,您可能還想查看http://www.jeremyskinner.co.uk/2010/06/25/hosting-a-git-server-under-iis7 -on-windows/或http://github.com/yysun/Git-Web-Access這些項目為 Git 提供基於 .NET 的 HTTP 後端。我一直無法使用這些工具,因為伺服器仍然執行 Windows 2003。