在Windows下,使用MSysgit的Perl解释器,GitWeb在Apache下运行非常缓慢

3
我正在使用Apache 2.2.22(win64)在Windows Server 2008 R2上运行GitWeb。我按照这里的说明进行操作:https://git.wiki.kernel.org/index.php/MSysGit:GitWeb。 说明中说,我们应该在gitweb.cgi脚本的第一行使用msysgit版本的perl。
GitWeb可以正常工作,但是它非常缓慢,需要大约10秒才能加载一个页面。我注意到即使我使用msysgit的Perl编写一个“Hello World”脚本作为第一行,Apache执行也很慢。然而,如果我改用其他版本的Perl,比如cygwin的perl(C:/cygwin/bin/perl),速度就会恢复正常。我无法使用除msysgit之外的任何其他类型的perl来执行gitweb.cgi,因为当我这样做时,会出现“Projects Not Found”错误。
2个回答

3

几个小时后,我找到了另一种解决方案。我们不再使用msysgit的git和perl版本,而是使用cygwin的:

1)安装Cygwin,并选择以下cygwin软件包:git(如果需要,还有perl)

2)在3个地方修改gitweb.cgi文件。
gitweb.cgi的第一行应该是:

#!C:/cygwin/bin/perl

请确保 $GIT 变量已正确设置,并且格式为 "cygwin":

our $GIT = "C:/cygwin/bin/git";

项目根目录必须采用 "cygwin" 格式,而非 msysgit 格式:
our $projectroot = "/cygdrive/c/temp/repos";

由于某种原因,Cygwin版的Perl在Apache下运行速度比在Msysgit下快得多。

0

只需要在httpd.conf中添加下一行:

SetEnv LOGONSERVER \machine


1
你能否通过解释这行代码的作用以及为什么应该添加它来改进你的回答? - Clayton Wilkinson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接