Git
Chapters ▾ 2nd Edition

4.7 Git на сервері - GitWeb

GitWeb

Тепер, коли у вас є базовий доступ до вашого проекту з правом читання та з правами на читання та запис, можливо ви бажаєте налаштувати простий візуалізатор через веб. Git поставляє CGI скрипт GitWeb, який іноді для цього використовують.

Веб інтерфейс користувача за допомогою GitWeb.
Figure 49. Веб інтерфейс користувача за допомогою GitWeb

Якщо ви бажаєте подивитись, як виглядає 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 або 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:

<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>

Як і попередній CGI скрипт, GitWeb може працювати на будь-якому здатному на CGI або Perl веб сервері. Якщо ви хочете використовувати щось інше, налаштування має бути легким. Тепер ви можете зайти до http://gitserver/ та побачити ваші сховища.