У меня есть SSH-доступ к серверу, на котором я пытаюсь создать репозиторий. Я не знаю, правильно ли настроен apache для этого, но на сервере есть svn, и он mod-dav-svn
. В любом случае, я подключаюсь к серверу по ssh:
-bash-3.00$ mkdir httpdocs/svn
-bash-3.00$ svnadmin create httpdocs/svn
Я проверяю, что репо было успешно создано (это было), а затем, используя tortoise svn, выполняю оформление заказа из http://server.com/svn/.
Возвращенная ошибка была Repository moved permanently to 'http://server.com/svn/'; please relocate
.
Что это могло означать?
Обратите внимание, что у меня нет корневого доступа к серверу, и системный администратор ушел спать на ночь. На данном этапе, какие шаги необходимо предпринять, чтобы запустить репо? Настройка виртуального хоста в apache? А как насчет .htaccess? Что-нибудь?
Я не уверен, что это все еще будет рассмотрено сейчас, но: системный администратор добавил это в файл conf для моего vhost,
<Location /svn>
DAV svn
SVNParentPath /var/www/vhosts/domain/svn
AuthType Digest
AuthName "Subversion Repository"
AuthUserFile /etc/myauthfile
Require valid-user
</Location>
в /etc/myauthfile
был настроен соответственно с пользователями для этого. Я убедился, что настроил репозиторий вне моего каталога httpdocs и httpsdocs, чтобы он не конфликтовал с другими пространствами имен - я перешел в / svn в свой домашний каталог и создал репозиторий. Я попытался проверить это со своего компьютера, и ...
svn: OPTIONS of 'http://domain/svn': 200 OK (http://domain)
Это сбивает с толку ... Попытка получить к нему доступ через браузер дает 404.
Что-то еще мне не хватает?
Это FAQ на сайте Subversion. Вы не можете включить доступ Subversion через http без доступа для повторной настройки Apache:
http://subversion.tigris.org/faq.html#http-301-error
http://svnbook.red-bean.com/en/1.5/svn.serverconfig.httpd.html
Ваша основная проблема заключается в том, что вы выбрали для своего репозитория - вы создали репозиторий в своей папке public_html.
Дополнительный <Location></Location>
материал, который администратор добавил в конфигурацию apache, верен, однако он должен указывать на каталог, который еще не обрабатывается Apache.
Причина, по которой вы просто получаете 404 и 200 ответов, заключается в том, что Apache перехватывает ваш HTTP-запрос SVN через свою обычную «шапку веб-сайта», а не передает запрос в SVN.
Переместите репозиторий в другой каталог, который находится вне обычного контроля Apache, получите <location>
бит обновлен, чтобы указывать на новое расположение репозитория.