在Windows上设置git-http-backend w / Apache有哪些步骤?

我想用“智能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上,但我设法做到这一点与以下configuration:

 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> 

我强烈build议观看apache日志和事件查看器来查看发生了什么问题。

例如,

  • libiconv.dll找不到。 在Windows中,DLL文件需要存在于$PATH或与.exe文件相同的文件夹中。 最简单的修复方法就是复制文件。
  • 在Apache中,需要设置权限才能运行可执行文件( ExecCGI选项)。

现在,继续debugging,这里有几点。

监控apache日志最简单的方法是打开“Git bash”shell,并运行以下命令:

 tail -f /c/Program\ Files/Apache\ Software\ Foundation/Apache2.2/logs/{access,error}.log & 

您可以使用TAB完成input此命令和path,然后按两次TAB以获取build议的列表。 最后把它变成后台进程。 每次发出请求或重新启动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的支持。 这应该给你一个漂亮的网页界面来浏览所有可用的存储库。

我在git文件夹中遇到空间问题,这些都是最好的避免。

克隆HTTPurl至less需要msysGit 1.7.1,如果你想记住密码。 密码可以存储在_netrc文件中,使用以下布局存储在configuration文件文件夹( %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这些项目为基&#x4E8E;.NET的Git提供了HTTP后端。 我还没有能够使用这些工具,因为服务器仍然运行Windows 2003。

<comment_to_the_question>

我有困难让它在Windows中工作

  1. 有什么困难?
  2. “在Windows”意味着从GNU / Linux它工作正常吗?

你还应该附上apachegit日志, git的版本使问题更容易追踪。

</comment_to_the_question>

乍一看,configuration文件对我来说看起来很好。 尝试删除身份validation要求,并首先进行testing。