【问题标题】:GitWeb very slow under Apache on Windows using MSysgit's Perl intrepretorGitWeb 在 Windows 上的 Apache 下使用 MSysgit 的 Perl 解释器非常慢
【发布时间】:2013-02-17 01:53:05
【问题描述】:

我正在使用 Apache 2.2.22 (win64) 在 Windows Server 2008 R2 上运行 GitWeb。我按照这里的说明进行操作:https://git.wiki.kernel.org/index.php/MSysGit:GitWeb 说明说我们应该在 gitweb.cgi 脚本中使用 perl 的 msysgit 版本作为 perl 的第一行。

GitWeb 可以工作,但速度极慢,加载一个页面大约需要 10 秒。我注意到的是,即使我使用 msysgit 的 Perl 版本作为第一行编写“Hello World”脚本,Apache 执行它的速度也很慢。但是,如果换成不同版本的 Perl,比如 cygwin 的 perl(C:/cygwin/bin/perl),又快了。我无法使用除 msysgit 之外的任何其他类型的 perl 来执行 gitweb.cgi,因为当我这样做时,我会收到“未找到项目”错误。

【问题讨论】:

    标签: windows apache msysgit gitweb


    【解决方案1】:

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

    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 下的要快得多。

    【讨论】:

      【解决方案2】:

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

      SetEnv LOGONSERVER \机器

      【讨论】:

      • 您能否通过解释这一行的作用以及为什么要添加它来改进您的答案?
      猜你喜欢
      • 1970-01-01
      • 2011-03-09
      • 2023-03-03
      • 2015-04-02
      • 1970-01-01
      • 2016-11-19
      • 1970-01-01
      • 2010-12-17
      相关资源
      最近更新 更多