Несколько репозиториев SVN при настройке Debian HTTPd vhost
Я хотел бы настроить сервер svn/http, чтобы я мог получить доступ к нескольким репозиториям через поддомен "svn":
Я использую Debian 6, и у меня уже есть несколько vhosts, настроенных через стандарт sites-available
метод.
Ресурсы и их проблемы:
Как: подрывная деятельность SVN с Apache2 и DAVЭтот не имеет дело с сервером с несколькими vhosts.
Установка и настройка Subversion- Этот рассматривает только один репозиторий Subversion.
- Этот действительно показывает установку SVN DAV
<Location>
в файле SVN Vhost.- Тем не менее, он не говорит, положить его внутри или снаружи
<VirtualHost>
тег. - Действительно ли это ограничивает доступ к Subversion только этому vhost? Я только что попробовал, и могу получить доступ к /foorepo из любого поддомен.
- Тем не менее, он не говорит, положить его внутри или снаружи
- Это, кажется, очень близко, но я все еще могу получить доступ к репозиториям с любого vhost. Другими словами, не имеет значения, какой субдомен я указываю, если путь соответствует имени репо. Не имеет никакого смысла. И да, мой
<Location>
тег находится внутри<VirtualHost>
,
Кажется, что многие из этих статей были написаны в 2006 или более ранних версиях и не обязательно соответствуют методам конфигурации, которые используют более новые дистрибутивы.
Кто-нибудь может направить меня в правильном направлении?
1 ответ
методы конфигурации, которые используют более новые дистрибутивы
Никоим образом не коррелирует с настройкой SVN-WebDAV внутри 1. один 2. любой 3. (забыл)... сайт внутри установки Apache, независимо от того, использовался контейнер Main Site или контейнер VirtualHost. Если вы не можете понять настройки httpd.conf и перевести его в "действия и результаты" - это не проблема документации, это проблемы с умом, лично ваши.
Я все еще очень хорошо сегодня утром, у тебя есть причина быть счастливым.
Давайте рассмотрим вашу бизнес-задачу
у меня есть настройки сервера svn/http, чтобы я мог получить доступ к нескольким репозиториям через поддомен "svn"
что переведено на техническое задание как
- Есть (виртуальный) хост svn.example.com
- Иметь SVN-DAV в корне хоста
- Простое управление множеством репо под root требует использования SVNParentPath
- Добавьте SSL-поддержку в конце концов
Реализация
- Создание vhost svn (оставьте это задание для вас)
- Добавление конфигурации Apache, необходимой для модулей Subversion (задача LoadModule оставлена для вас)
- Настройка местоположения для SVN
Мы будем использовать конфигурацию из Subversion Book, конец главы "Базовая конфигурация Apache", в качестве отправной точки
<Location /svn>
DAV svn
# Automatically map any "/svn/foo" URL to repository /var/svn/foo
SVNParentPath /var/svn
</Location>
Переместить контейнер Location в контейнер VirtualHost (на основе имени виртуального хоста) (потому что инвертированное вложение просто невозможно), исправить путь к местоположению
Имя_сервера svn.example.com DocumentRoot /home/svn.example.com/docroot
<Location />
SVNParentPath /home/svn.example.com/svnroot
SVNListParentPath on
</Location>
но /etc/apache2/conf.d/subversion.conf
есть подсказки
Не устанавливайте DocumentRoot. Это не нужно здесь, а просто вызывает проблемы.
а также
Сопоставьте документы об ошибках с их значениями по умолчанию.
В противном случае mod_dav_svn пытается найти репозиторий "ошибки".
но с различными путями в DocumentRoot и SVNParentPath работает virthost (DocumentRoot просто никогда не используется, потому что / перехвачен dav_svn) и директивы ErrorDocument добавлены просто для удобства "если произойдет ошибка, мы получим обычный ответ без неверной интерпретации"
<VirtualHost *:80>
ServerName svn.example.com
DocumentRoot /home/svn.example.com/docroot
<Location />
SVNParentPath /home/svn.example.com/svnroot
SVNListParentPath on
</Location>
ErrorDocument 400 default
ErrorDocument 401 default
ErrorDocument 403 default
ErrorDocument 404 default
ErrorDocument 405 default
ErrorDocument 408 default
ErrorDocument 410 default
ErrorDocument 411 default
ErrorDocument 412 default
ErrorDocument 413 default
ErrorDocument 414 default
ErrorDocument 415 default
ErrorDocument 500 default
ErrorDocument 501 default
ErrorDocument 502 default
ErrorDocument 503 default
</VirtualHost>