Назад | Перейти на главную страницу

Проблемы с сервером apache svn (403 запрещено)

Я недавно установил сервер SVN на моем веб-сервере papache. Установил УСВН http://www.usvn.fr/ для помощи в управлении репозиториями через веб-интерфейс.

Когда я создаю репозиторий и пытаюсь импортировать в него код из netbeans, я получаю следующую ошибку: org.tigris.subversion.javahl.ClientException: RA layer request failed Server sent unexpected return value (403 Forbidden) in response to PROPFIND request for '/svn/python1'

Я знаю, что у меня правильные имя пользователя и пароль (и я пробовал разных пользователей). Я провел некоторое исследование, и мне кажется, что это, скорее всего, ошибка Apache svn. Ниже приведен файл конфигурации для этого виртуального хоста.

<VirtualHost *:80>
ServerName svn.domain.com
ServerAlias www.svn.domain.com
ServerAlias admin.svn.domain.com
DocumentRoot /home/mrlanrat/domains/svn.domain.com/usvn/public
ErrorLog /var/log/virtualmin/svn.domain.com_error_log
CustomLog /var/log/virtualmin/svn.domain.com_access_log combined

DirectoryIndex index.html index.htm index.php index.php4 index.php5

<Directory "/home/mrlanrat/domains/svn.domain.com/usvn">
    Options +SymLinksIfOwnerMatch
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

<Location /svn/>
 ErrorDocument 404 default
 DAV svn
 Require valid-user
 SVNParentPath /home/mrlanrat/domains/svn.domain.com/usvn/files/svn
 SVNListParentPath on
 AuthType Basic
 AuthName "USVN"
 AuthUserFile /home/mrlanrat/domains/svn.domain.com/usvn/files/htpasswd
 AuthzSVNAccessFile /home/mrlanrat/domains/svn.domain.com/usvn/files/authz
</Location>

</VirtualHost>

Может ли кто-нибудь указать, что я сделал не так и как это исправить? Я безуспешно тестировал изменение прав доступа к файлам и изменение конфигурации.

Заранее спасибо!

ОБНОВЛЕНИЕ: вот содержимое /home/mrlanrat/domains/svn.domain.com/usvn/files/authz

# This is an auto generated file! Edit at your own risk!
# You can edit this "/" section. Settings will be kept.
#
[/]
* = 

#
# Don't edit anything below! All manual changes will be overwritten. 
#

[groups]
python1 = mrlanrat, user


# Project python1
[python1:/]
@python1 = r

[python1:/branches]
@python1 = rw

[python1:/trunk]
@python1 = rw

А вот /home/mrlanrat/domains/svn.domain.com/usvn/files/htpasswd

mrlanrat:*****
user:*****

Вот журнал доступа: http://pastebin.com/RRYL1kCx и вот журнал ошибок: http://pastebin.com/vR2MJj0v

Интересная часть находится здесь:

[Wed Apr 21 12:13:25 2010] [error] [client 209.129.37.170] user  not found: /svn/test/trunk
[Wed Apr 21 12:13:25 2010] [error] [client 209.129.37.170] client denied by server configuration: /home/mrlanrat/domains/svn.domain.com/usvn/public/svn

Вход в систему через веб-браузер, похоже, работает, однако netbeans и другие клиенты svn получают ошибку 403.

У меня была та же проблема, и я красный, что нет возможности отключить mod_evasive для определенного виртуального хоста.

Следующая конфигурация "обходного пути" у меня работает с svn:

изменение: /etc/apache2/mods-available/mod-evasive.load

Весь файл:

LoadModule evasive20_module /usr/lib/apache2/modules/mod_evasive20.so
<Если модуль mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 5
DOSSiteCount 15
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 600
</ IfModule>

После изменения необходимо перезапустить Apache:
/etc/init.d/apache2 перезапуск

Радоваться, веселиться

После целого дня поиска в Google и поиска всевозможных проблем, которые могли вызвать эту ошибку 403, ни одна из которых не была моей. Я наконец нашел свою проблему!

У меня в Apache был включен mod_evasive. Судя по всему, SVN / WED-DAV отправляет команды так быстро, что блокируется.

Итак, вернемся к решению! Отключите mod_evasive! :)

Если кто-нибудь знает способ просто отключить его только для одного виртуального хоста, дайте мне знать. Я все еще хотел бы, чтобы он был включен для других моих виртуальных хостов.

Спасибо!

Что делает ваш /home/mrlanrat/domains/svn.domain.com/usvn/files/authz файл похож?

Мой выглядит так:

[groups]
everyone = user1, user2, user3
repo1users = user1

[/]
@everyone = r

[repo1:/]
@repo1users = rw

у нас раньше были подобные проблемы, и это в основном неправильная настройка файла authz.