Несколько репозиториев 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 из любого поддомен.
Настройка Subversion и Trac в качестве виртуальных хостов на сервере Ubuntu
  • Это, кажется, очень близко, но я все еще могу получить доступ к репозиториям с любого 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-поддержку в конце концов

Реализация

  1. Создание vhost svn (оставьте это задание для вас)
  2. Добавление конфигурации Apache, необходимой для модулей Subversion (задача LoadModule оставлена ​​для вас)
  3. Настройка местоположения для 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>
Другие вопросы по тегам