Инструменты пользователя

Инструменты сайта


faq:nastrojka_git_na_shared-xostinge

Настройка git на shared-хостинге

Описание

Есть shared-хостинг с достаточно большим объёмом свободного места. Сильно захотелось расположить там git-репозиторий. И оказывается, это возможно!

Требования

Требуется хостинг с ОС Unix, доступ к файлам сайта, а также наличие разрешения выполнения cgi-скриптов.

Решение

Закачиваем на хостинг файлы git. Обратите внимание, что версии glib должны совпадать у выбранного вами пакета и библиотекой на сервере, иначе получите ошибку типа

/lib/libc.so.6: version `GLIBC_2.7' not found

Для моего хостинга подошёл вот этот архив: http://pkgs.org/download/centos-5-rhel-5/rpmforge-i386/git-1.7.5.4-1.el5.rf.i386.rpm.html (прямая ссылка: http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/git-1.7.5.4-1.el5.rf.i386.rpm).

Скачиваем, распаковываем:

$ rpm2cpio git-1.7.5.4-1.el5.rf.i386.rpm | cpio -idmv

И закачиваем распакованное содержимое (интересуют нас только usr/bin и usr/libexec) на сайт, скажем, в каталог git-bin, получаем следующую структуру домашнего каталога сайта:

/home/your-site-home/
/home/your-site-home/git-bin/
/home/your-site-home/git-bin/bin/
/home/your-site-home/git-bin/bin/<файлы git>
/home/your-site-home/git-bin/libexec/
/home/your-site-home/git-bin/libexec/git-core/
/home/your-site-home/git-bin/libexec/git-core/<файлы git>

Создаём каталог для репозиториев, скажем /home/your-site-home/repos.

Далее создаём скрипт-посредник для исполнения:

#!/bin/sh
exec 2>&1
 
HOME=/home/your-site-home
export GIT_PROJECT_ROOT=$HOME/repos
export GIT_HTTP_EXPORT_ALL=1
 
[ -z "$REMOTE_USER" ] && export REMOTE_USER=$REDIRECT_REMOTE_USER
 
exec $HOME/git-bin/libexec/git-core/git-http-backend

Кладём этот скрипт (назовём его git.cgi) в каталог cgi-скриптов (cgi-bin).

После этого уже можно забирать репозитории (конечно, в каталоге repos уже должен быть bare-репозиторий foo.git) по указанию адреса на подобии http://your-site.tdl/cgi-bin/git.cgi/foo.git

Для того, чтобы заработал push, необходимо добавить на сайт basic-авторизацию (чтобы скрипт получал переменную $REMOTE_USER), либо поковырять настройки репозитория.

Информация

Первичный источник: git on shared hosting with git-http-backend

Источник рабочего примера: git-http-backend on shared hosting, with push

Дискуссия

Enter your comment
 
faq/nastrojka_git_na_shared-xostinge.txt · Последние изменения: 08.07.2011 21:43 (внешнее изменение)

Инструменты страницы