Устанавливаем следующие компоненты:
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/