我想用“智能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文件相同的文件夹中。 最简单的修复方法就是复制文件。 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这些项目为基于.NET的Git提供了HTTP后端。 我还没有能够使用这些工具,因为服务器仍然运行Windows 2003。
<comment_to_the_question>
我有困难让它在Windows中工作
你还应该附上apache和git日志, git的版本使问题更容易追踪。
</comment_to_the_question>
乍一看,configuration文件对我来说看起来很好。 尝试删除身份validation要求,并首先进行testing。