методы конфигурации, которые используют более новые дистрибутивы
Никоим образом не коррелирует с настройкой 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 config, необходимое для модулей 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>