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

mod_dav_svn не разрешает аутентифицированным пользователям

Я использую сервер CentOS 6.3 вместе с настраиваемым компилируемым apache 2.4.3 (строка компиляции ниже) и настраиваемой скомпилированной подрывной версией 1.7.8 (опять же, строка компиляции ниже).

У меня установлен mod_dav_svn, и он наполовину работает. Если я перейду на svn.domain.com/svn, он спросит у меня мое имя пользователя и пароль. Я могу войти в систему нормально (он спрашивает меня только один раз), и я могу без проблем просматривать репозитории. Если я затем перейду в tortoisesvn на машине с Windows и попытаюсь проверить репозиторий (например, svn.domain.com/svn/testrepo), появится окно входа в систему. Я ввожу свои учетные данные и нажимаю «Сохранить», а затем «ОК». Окно снова всплывает. Я могу вводить свои учетные данные снова и снова, и это ничего не делает (действует так, как будто мое имя пользователя и пароль неверны, но я знаю, что это не так). В журнале ошибок ничего не отображается, и в журнале доступа нет ничего странного. Если отключить аутентификацию, все работает отлично. Халп!

РЕДАКТИРОВАТЬ: Я сделал "chmod -R 777 / u01 / svn", чтобы увидеть, устранило ли это проблему. Никаких кубиков. Файл svnauth тоже 777 по той же причине.

Конфигурация VHosts

<VirtualHost *:80>
    ServerAdmin tony@domain.om
    DocumentRoot "/u01/www/vhosts/svn"
    ServerName svn.domain.com
    ErrorLog "logs/svn.domain.com-error_log"
    CustomLog "logs/svn.domain.com-access_log" common
    <Location /svn>
        DAV svn
        SVNParentPath /u01/svn/
        SVNListParentPath On
        AuthType Basic
        AuthName "Subversion repository"
        AuthUserFile /usr/local/apache/conf/svnauth
        Require valid-user
    </Location>
</VirtualHost>

Настроить переключатели

Apache

"./configure" \
"--prefix=/usr/local/apache" \
"--enable-ssl" \
"--enable-rewrite=shared" \
"--enable-status=shared" \
"--enable-info=shared" \
"--enable-so"

Subversion

'./configure' \
'--with-serf' \
'--enable-ssl' \
'--prefix=/usr/local/subversion' \
'--with-apr=/usr/local/apache/bin/apr-1-config' \
'--with-apr-util=/usr/local/apache/bin/apu-1-config'

Результаты листинга каталога

[pritchea@server ~]$ ls -l /u01/svn/
total 12
drwxrwxrwx 6 pritchea wheel 4096 Jan 24 04:44 repo1
drwxrwxrwx 6 pritchea wheel 4096 Jan 15 03:20 repo2
drwxrwxrwx 6 pritchea wheel 4096 Mar  7 20:13 testrepo
[pritchea@server ~]$ ls -l /u01/svn/*
/u01/svn/repo1:
total 24
drwxrwxrwx 2 pritchea wheel 4096 Jan 24 04:44 conf
drwxrwxrwx 6 pritchea wheel 4096 Jan 24 04:51 db
-rwxrwxrwx 1 pritchea wheel    2 Jan 24 04:44 format
drwxrwxrwx 2 pritchea wheel 4096 Jan 24 04:44 hooks
drwxrwxrwx 2 pritchea wheel 4096 Jan 24 04:44 locks
-rwxrwxrwx 1 pritchea wheel  229 Jan 24 04:44 README.txt

/u01/svn/repo2:
total 24
drwxrwxrwx 2 pritchea wheel 4096 Jan 15 03:20 conf
drwxrwxrwx 6 pritchea wheel 4096 Feb 12 02:26 db
-rwxrwxrwx 1 pritchea wheel    2 Jan 15 03:20 format
drwxrwxrwx 2 pritchea wheel 4096 Jan 15 03:20 hooks
drwxrwxrwx 2 pritchea wheel 4096 Jan 15 03:20 locks
-rwxrwxrwx 1 pritchea wheel  229 Jan 15 03:20 README.txt

/u01/svn/testrepo:
total 24
drwxrwxrwx 2 pritchea wheel 4096 Mar  7 20:13 conf
drwxrwsrwx 6 pritchea wheel 4096 Mar  7 20:13 db
-rwxrwxrwx 1 pritchea wheel    2 Mar  7 20:13 format
drwxrwxrwx 2 pritchea wheel 4096 Mar  7 20:13 hooks
drwxrwxrwx 2 pritchea wheel 4096 Mar  7 20:13 locks
-rwxrwxrwx 1 pritchea wheel  229 Mar  7 20:13 README.txt

Избавьтесь от DocumentRoot директива. Это не действует с DAV svn.