GitWeb очень медленный под Apache в Windows с использованием интерпретатора MSysgit Perl

Я запускаю GitWeb на Windows Server 2008 R2, используя Apache 2.2.22 (win64). Я следовал инструкциям здесь: https://git.wiki.kernel.org/index.php/MSysGit:GitWeb В инструкциях говорится, что мы должны использовать версию Perl для msysgit в качестве первой строки Perl в скрипте gitweb.cgi.

GitWeb работает, но очень медленно, загрузка страницы занимает около 10 секунд. Что я заметил, так это то, что даже если я пишу сценарий «Hello World», используя версию Perl от msysgit в качестве первой строки, Apache также медленно выполняет это. Однако, если перейти на другую версию Perl, такую ​​как perl cygwin (C:/cygwin/bin/perl), он снова будет быстрым. Я не могу заставить gitweb.cgi выполняться с использованием любого другого типа perl, кроме msysgit, потому что когда я это делаю, я получаю сообщение об ошибке «Проекты не найдены».


person user64141    schedule 17.02.2013    source источник


Ответы (2)


Через несколько часов я нашел альтернативное решение. Вместо использования версии git и perl от msysgit мы будем использовать версию cygwin:

1) Установите Cygwin и выберите следующие пакеты cygwin: git (и perl, если необходимо)

2) Измените файл gitweb.cgi в 3-х местах.
Первая строка gitweb.cgi должна быть такой:

#!C:/cygwin/bin/perl

Убедитесь, что переменная $GIT установлена ​​правильно и в формате "cygwin":

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

Каталог проекта должен быть в формате «cygwin», а не в формате msysgit:

our $projectroot = "/cygdrive/c/temp/repos";

По какой-то причине версия perl для cygwin выполняется намного быстрее под apache, чем под msysgit.

person user64141    schedule 17.02.2013

Просто добавьте следующую строку в httpd.conf

SetEnv LOGONSERVER \машина

person Leanid    schedule 21.07.2015
comment
Можете ли вы улучшить свой ответ, объяснив, что делает эта строка и почему ее следует добавить? - person Clayton Wilkinson; 21.07.2015