Apache git http后端的脚本头过早结束

Apache git http后端的脚本头过早结束,apache,git,msysgit,Apache,Git,Msysgit,我正在尝试在Windows上安装git和Apache。我已在Windows 2008服务器(x64)上安装了MSYSGit 1.7.3。我选择在安装msysgit时,git命令应该在Windows命令提示符下工作 我已将以下行添加到我的http.conf文件中: SetEnv GIT_PROJECT_ROOT C:/Repositories SetEnv GIT_HTTP_EXPORT_ALL ScriptAlias /git/ "C:/Progra~2/git/libexec/git-core

我正在尝试在Windows上安装git和Apache。我已在Windows 2008服务器(x64)上安装了MSYSGit 1.7.3。我选择在安装msysgit时,git命令应该在Windows命令提示符下工作

我已将以下行添加到我的http.conf文件中:

SetEnv GIT_PROJECT_ROOT C:/Repositories
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias /git/ "C:/Progra~2/git/libexec/git-core/git-http-backend.exe/"

<Directory />
  Options +ExecCGI
  Allow from all
</Directory>
我知道这意味着脚本中的标题格式不正确。如果我正在编写脚本,我会在那里检查,但我假设git后端通常提供正确的头。我的看法是GitHTTP后端由于某种原因失败了。我可以去哪里确定它失败的原因?某处有Git日志吗


帕特O

我也在为同样的问题而斗争。在我的例子中,这是一个用户权限问题。您可以检查Apache Windows服务的“登录”信息,并使用您的域用户进行测试,例如(控制面板->管理工具->服务->Apache->登录选项卡)

重新启动后,浏览到您的服务器时,应该会在error.log中给您一个请求不受支持的错误。那很好


git克隆应该可以正常工作。

我也在解决同样的问题。在我的例子中,这是一个用户权限问题。您可以检查Apache Windows服务的“登录”信息,并使用您的域用户进行测试,例如(控制面板->管理工具->服务->Apache->登录选项卡)

重新启动后,浏览到您的服务器时,应该会在error.log中给您一个请求不受支持的错误。那很好


git克隆应该可以工作。

我之前处理过类似的问题

在Cygwin shell中运行“git-http-backend.exe”表明找不到dll“libiconv2.dll”。该文件位于git安装的git/bin目录中(大多数是默认设置)。我将git安装的bin和libexec目录添加到我的路径中,并能够通过Apache在本地克隆git存储库

注意:我的Apache错误日志如下所示-git-http-backend.exe在丢失的dll上失败,但在httpd日志中未报告:

[Mon Feb 14 15:26:02 2011] [notice] Child 3308: Starting 64 worker threads. [Mon Feb 14 15:26:02 2011] [notice] Child 3308: Starting thread to listen on port 80. [Mon Feb 14 15:26:20 2011] [error] [client 127.0.0.1] Premature end of script headers: git-http-backend.exe [Mon Feb 14 15:26:20 2011] [error] [client 127.0.0.1] Premature end of script headers: git-http-backend.exe [Mon Feb 14 15:26:02 2011][notice]Child 3308:启动64个工作线程。 [Mon Feb 14 15:26:02 2011][notice]Child 3308:正在启动线程以侦听端口80。 [Mon Feb 14 15:26:20 2011][error][client 127.0.0.1]脚本头过早结束:git-http-backend.exe [Mon Feb 14 15:26:20 2011][error][client 127.0.0.1]脚本头过早结束:git-http-backend.exe
我之前处理过类似的问题

在Cygwin shell中运行“git-http-backend.exe”表明找不到dll“libiconv2.dll”。该文件位于git安装的git/bin目录中(大多数是默认设置)。我将git安装的bin和libexec目录添加到我的路径中,并能够通过Apache在本地克隆git存储库

注意:我的Apache错误日志如下所示-git-http-backend.exe在丢失的dll上失败,但在httpd日志中未报告:

[Mon Feb 14 15:26:02 2011] [notice] Child 3308: Starting 64 worker threads. [Mon Feb 14 15:26:02 2011] [notice] Child 3308: Starting thread to listen on port 80. [Mon Feb 14 15:26:20 2011] [error] [client 127.0.0.1] Premature end of script headers: git-http-backend.exe [Mon Feb 14 15:26:20 2011] [error] [client 127.0.0.1] Premature end of script headers: git-http-backend.exe [Mon Feb 14 15:26:02 2011][notice]Child 3308:启动64个工作线程。 [Mon Feb 14 15:26:02 2011][notice]Child 3308:正在启动线程以侦听端口80。 [Mon Feb 14 15:26:20 2011][error][client 127.0.0.1]脚本头过早结束:git-http-backend.exe [Mon Feb 14 15:26:20 2011][error][client 127.0.0.1]脚本头过早结束:git-http-backend.exe
我已经放弃了在Windows上运行Git的想法。因此,这对我来说不再是一个问题


谢谢你的帮助。

我已经放弃了在Windows上运行Git的想法。因此,这对我来说不再是一个问题


感谢您的帮助。

这对我的1.7.6.msysgit.0设置有效:


在中,Jeremy Skinner建议必须能够在Windows cmd shell中运行Git\libexec\Git-http-backend.exe。如果失败,请将Git\bin\libiconv-2.dll和Git\bin\libiconv2.dll复制到Git\libexec\Git core,然后重试。如果您可以调用git-http-backend.exe,它会给您一个“500内部服务器错误”,请再次尝试克隆或获取。

这适用于我的1.7.6.msysgit.0安装程序:


在中,Jeremy Skinner建议必须能够在Windows cmd shell中运行Git\libexec\Git-http-backend.exe。如果失败,请将Git\bin\libiconv-2.dll和Git\bin\libiconv2.dll复制到Git\libexec\Git core,然后重试。如果您可以调用git-http-backend.exe,但它显示“500内部服务器错误”,请再次尝试克隆或获取。

感谢您的响应。不过,我已经为Apache设置了一个合适的用户来运行。谢谢您的回复。不过我已经为Apache设置了一个合适的用户来运行。谢谢你的评论。据我所知,它运行正常。下面是从Git Bash运行它的输出:pohara@VM-MILLERLITE/c/Program Files(x86)/Git/libexec/Git core$。/Git-http-backend.exe状态:500内部服务器错误过期:1980年1月1日星期五00:00:00 GMT Pragma:无缓存控制:无缓存,最大年龄=0,必须重新验证致命:没有来自服务器的请求\u方法对不起,前面的评论太乱了。似乎无法在评论中预先格式化输出。感谢您的评论。据我所知,它运行正常。下面是从Git Bash运行它的输出:pohara@VM-MILLERLITE/c/Program Files(x86)/Git/libexec/Git core$。/Git-http-backend.exe状态:500内部服务器错误过期:1980年1月1日星期五00:00:00 GMT Pragma:无缓存控制:无缓存,最大年龄=0,必须重新验证致命:没有来自服务器的请求\u方法对不起,前面的评论太乱了。似乎无法在注释中预格式化输出。