Настройка git-http-backend с помощью Apache 2.4
Я пытаюсь настроить git-сервер, используя git-http-backend и apache 2.4. Я нашел этот вопрос о том же, что было полезно, но я все еще достигаю точки, где я застрял.
Я установил git и 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 (мне сказали). Бег 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-данных (может быть, это должен быть root?). Группа www-data тоже www-data (я думаю)
$ id www-data
uid=33(www-data) gid=33(www-data) groups=33(www-data)
поэтому я использую это, чтобы установить право собственности:
sudo chown -R www-data:www-data .
Мне также кажется, что я помню, что читал, что весь путь должен принадлежать пользователю apache, так что я просто установил его
sudo chown -R www-data:www-data /var/www
Теперь из моей локальной машины я пытаюсь клонировать myrepo:
git clone http://<ip-address>/myrepo.git
И я получаю ошибку:
fatal: unable to access 'http://<ip-address>/myrepo.git/': The requested URL returned error: 503
Кто-нибудь может увидеть, что я делаю не так?
1 ответ
Alias /git /var/www/git
Это должно означать, что ваши URL должны включать в себя /git:
git clone http://<ip-address>/git/myrepo.git
Я не вижу такой псевдоним в этой конфигурации Apache