Настройка и установка git на собственном сервере

Устанавливаем следующие компоненты:

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/

Print Friendly, PDF & Email

Добавить комментарий