4.7 Git на сервере – GitWeb
Теперь, когда к вашему проекту настроен доступ на чтение/запись и только на чтение, вероятно, вы захотите настроить простой веб-визуализатор. Для этой цели в комплекте с Git поставляется CGI-скрипт GitWeb.
Если вы хотите посмотреть как будет выглядеть ваш проект в GitWeb, в Git есть стандартная команда для запуска временного экземпляра, однако она требует наличия установленного веб-сервера, такого как lighttpd
или webrick
. Как правило, на машинах с Linux lighttpd
уже установлен, поэтому вы сможете его запустить, выполнив команду git instaweb
в каталоге с вашим проектом. Если вы используете Mac, Leopard поставляется с предустановленным Ruby, поэтому webrick
может быть лучшим выбором. Чтобы запустить instaweb
не с ligttpd
, используйте параметр --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
или dnf
, так что вы можете попробовать сначала этот способ. Мы же вкратце рассмотрим ручную установку GitWeb. Для начала вам нужно скачать исходный код Git, с которым поставляется GitWeb, и сгенерировать CGI-скрипт под свою систему:
$ git clone git://git.kernel.org/pub/scm/git/git.git
$ cd git/
$ make GITWEB_PROJECTROOT="/srv/git" prefix=/usr gitweb
SUBDIR gitweb
SUBDIR ../
make[2]: 'GIT-VERSION-FILE' is up to date.
GEN gitweb.cgi
GEN static/gitweb.js
$ sudo cp -Rf gitweb /var/www/
Помните, что вы должны указать команде, где расположены ваши репозитории Git, с помощью переменной GITWEB_PROJECTROOT
. Теперь вы должны настроить Apache на использование этого CGI-сценария, для чего вы можете добавить виртуальный хост:
<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 или Perl; если вы предпочитаете использовать что-то другое, настройка не должна стать для вас проблемой. К этому моменту вы должны иметь возможность зайти на http://gitserver/ для просмотра ваших репозиториев онлайн.