Устанавливаем следующие компоненты:
apt-get install git
apt-get install fcgiwrap spawn-fcgi — нужно для nginx
apt-get install gitweb — web сайт для git. Настройки можно изменить в /etc/gitweb.conf (обычно здесь меняет параметр $projectroot)
Настраиваем nginx для GitWeb
server { access_log /var/log/nginx/gitweb.access.log; error_log /var/log/nginx/gitweb.error.log info; server_name gitweb.developernote.com; location /index.cgi { root /usr/share/gitweb/; include fastcgi_params; gzip off; fastcgi_param SCRIPT_NAME $uri; fastcgi_param GITWEB_CONFIG /etc/gitweb.conf; fastcgi_pass unix:/var/run/fcgiwrap.socket; } location / { root /usr/share/gitweb/; index index.cgi; } }
Далее создаем директорию для хранения репозиториев
cd /var/www mkdir git cd /var/www/git git init --bare project.git cd project.git touch readme git add . git commit -m "first" chown -R www-data:www-data . chmod -R 777 . service fcgiwrap restart # возможно это не нужно выполнять
После этого можно спокойно открыть сайт по адресу gitweb.developernote.com
Теперь настраиваем сам git. В Nginx добавляем еще один сайт
server { access_log /var/log/nginx/git.access.log; error_log /var/log/nginx/git.error.log info; server_name git.developernote.com; gzip off; location / { root /home/git/repositories; fastcgi_pass unix:/var/run/fcgiwrap.socket; fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend; fastcgi_param PATH_INFO $uri; fastcgi_param GIT_PROJECT_ROOT /home/git/repositories; fastcgi_param GIT_HTTP_EXPORT_ALL ""; fastcgi_param REMOTE_USER $remote_user; include fastcgi_params; } }
И если все правильно настроить, то гит должен заработать
Чтобы использовать авторизацию нужно установить
apt-get install apache2-utils
sudo htpasswd /var/www/git/htpasswd hitesh , где
/var/www/git/htpasswd путь где содержится файл, каталог которого должен быть заблокирован
hitesh — имя пользователя для доступа
И в Настройках nginx сайтов прописываем
server { ... auth_basic "GitWeb requires authorization"; auth_basic_user_file /home/git/.gitpasswd; ... }
Оригинал статьи: https://developernote.com/2015/01/installing-git-on-ubuntu-12-04-and-enabling-http-access-with-nginx/