Теперь, когда у вас есть основной доступ на чтение и запись и доступ
только на чтение к вашему проекту, вероятно, вы захотите настроить
простой веб-визуализатор. Git поставляется в комплекте с CGI-сценарием,
называющимся GitWeb, который обычно используется для этого. Вы можете
увидеть GitWeb в действии на таких сайтах как http://git.kernel.org
(рис. 4-1).
Если вы хотите проверить, как GitWeb будет выглядеть для вашего
проекта, Git поставляется с командой для быстрой установки временного
экземпляра, если в вашей системе есть легковесный веб-сервер, такой как lighttpd
или webrick
. На машинах с Linux'ом lighttpd
часто установлен, поэтому возможно вы сможете его запустить, выполнив git instaweb
в каталоге с вашим проектом. Если вы используете Mac, Leopard поставляется с предустановленным Ruby, поэтому webrick
может быть лучшим выбором. Чтобы запустить instaweb
не с lighttpd
, вы можете запустить команду с параметром --httpd
.
$ git instaweb --httpd=webrick
[2009-02-21 10:02:21] INFO WEBrick 1.3.1
[2009-02-21 10:02:21] INFO ruby 1.8.6 (2008-03-03) [universal-darwin9.0]
Это запустит сервер HTTPD на порте 1234 и затем запустит веб-браузер,
открытый на этой странице. Это очень просто. Когда вы закончили и
хотите остановить сервер, вы можете запустить ту же команду с параметром
--stop
:
$ git instaweb --httpd=webrick --stop
Если вы хотите иметь постоянно работающий веб-интерфейс на сервере
для своей команды или для своего проекта с открытым кодом, вам
необходимо установить CGI-сценарий на своём веб-сервере. В некоторых
дистрибутивах Linux есть пакет gitweb
, который можно установить, используя apt
или yum
,
так что вы можете попробовать сначала этот способ. Мы рассмотрим
установку GitWeb вручную очень быстро. Для начала вам нужно получить
исходный код Git'а, с которым поставляется GitWeb, и сгенерировать
CGI-сценарий под свою систему:
$ git clone git://git.kernel.org/pub/scm/git/git.git
$ cd git/
$ make GITWEB_PROJECTROOT="/opt/git" \
prefix=/usr gitweb
$ sudo cp -Rf gitweb /var/www/
Помните, что вы должны указать команде, где расположены ваши Git-репозитории с помощью переменной GITWEB_PROJECTROOT
. Теперь нужно настроить Apache на использование этого сценария, для чего вы можете добавить виртуальный хост:
<VirtualHost *:80>
ServerName gitserver
DocumentRoot /var/www/gitweb
<Directory /var/www/gitweb>
Options ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch
AllowOverride All
order allow,deny
Allow from all
AddHandler cgi-script cgi
DirectoryIndex gitweb.cgi
</Directory>
</VirtualHost>
Повторюсь, GitWeb может быть установлен на любой веб-сервер,
совместимый с CGI. Если вы предпочитаете использовать что-то другое,
настройка не должна стать для вас проблемой. К этому моменту вы должны
иметь возможность зайти на http://gitserver/
для просмотра ваших репозиториев онлайн, а также использовать http://git.gitserver
для клонирования и извлечения данных для ваших репозиториев по HTTP.