2016-12-02 5 views
2

Я пытаюсь настроить сервер git с помощью git-http-backend и apache 2.4 Я нашел this question о том же, что было полезно, но я все еще добираюсь до точки, где Я застрял.Настройка git-http-backend с apache 2.4

Я установил мерзавца и apache2 на Ubuntu 16.04 и добавил необходимые модули с помощью

sudo a2enmod cgi alias env

Затем добавляют следующий фрагмент в /etc/apache2/apache2.conf:

<VirtualHost *:80> 
    SetEnv GIT_PROJECT_ROOT /var/www/git 
    SetEnv GIT_HTTP_EXPORT_ALL 
    SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER 
    ScriptAliasMatch \ 
     "(?x)^/(.*/(HEAD | \ 
      info/refs | \ 
      objects/(info/[^/]+ | \ 
      [0-9a-f]{2}/[0-9a-f]{38} | \ 
      pack/pack-[0-9a-f]{40}\.(pack|idx)) | \ 
      git-(upload|receive)-pack))$" \ 
     "/usr/lib/git-core/git-http-backend/$1" 
    Alias /git /var/www/git 
    <Directory /usr/lib/git-core> 
     Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch 
     AllowOverride None 
     Require all granted 
    </Directory> 
</VirtualHost> 

Обратите внимание, что /var/www/git где я намерены мои репозиции пойти, и работает

find/-name git-http-backend показывает /usr/lib/git-core/git-http-backend

Далее внутри /var/www/git/ я создал каталог myrepo.git и установить его в качестве таковых:

sudo git init --bare --shared 
sudo cp hooks/post-update.sample hooks/post-update 
sudo git update-server-info 

Далее, я должен изменить владельца каталога для владельца apache2 (Im сказали). Запуск ps aux | egrep '(apache|httpd)' возвращает следующее:

root 3087 0.0 0.4 73688 4928 ? Ss 02:37 0:00 /usr/sbin/apache2 -k start 
www-data 3455 0.0 0.5 362836 5852 ? Sl 03:13 0:00 /usr/sbin/apache2 -k start 
www-data 3456 0.0 0.5 362836 5852 ? Sl 03:13 0:00 /usr/sbin/apache2 -k start 
git 3531 0.0 0.0 14512 932 pts/1 S+ 03:19 0:00 grep -E --color=auto (apache|httpd) 

Теперь я не уверен, потому что это выглядит как root и www-data работают кое-что, но я в настоящее время решил установить право собственности на WWW-данных (возможно, это должно быть корень?). Группа WWW-данных является также WWW-данные (я думаю)

$ id www-data 
uid=33(www-data) gid=33(www-data) groups=33(www-data) 

поэтому я использую это, чтобы установить право собственности:

sudo chown -R www-data:www-data . 

я, кажется, помню, как читал, что весь путь должен принадлежать к пользователь апач так просто для хорошей мерой Я поставил

sudo chown -R www-data:www-data /var/www 

Теперь из моего LocalMachine Я пытаюсь клонировать myrepo:

git clone http://<ip-address>/myrepo.git 

И я получаю ошибку:

fatal: unable to access 'http://<ip-address>/myrepo.git/': The requested URL returned error: 503 

Кто-нибудь может увидеть, что Я делаю не так?

ответ

0
Alias /git /var/www/git 

Это должно означать ваши URLs должны включать/мерзавец в нем:

git clone http://<ip-address>/git/myrepo.git 

Я не вижу такой псевдоним в этом Apache configuration

+0

Да, я скопировал, что псевдоним из [этого ответа ] (http://stackoverflow.com/a/26734934/3486338) Я не уверен, что это необходимо. Я думаю, что основная проблема - проблема с разрешениями, хотя я изменил права на каталог на «root», и теперь Im способен клонировать его, но я не могу сделать резервную копию. Я думаю, что это похоже на [этот пост] (http://stackoverflow.com/questions/6448242/git-push-error-insfect-permission-for-adding-an-object-to-repository-datab) – bradimus

 Смежные вопросы

  • Нет связанных вопросов^_^