SVN сервер на CentOS 5.8

Я пытаюсь настроить сервер Subversion на CentOS 5.8 (CentOS выпуск 5.8 (Final)). У меня есть только небольшой опыт работы с CentOS. До сих пор я работал только с SuSE и Ubuntu.

Проблема, с которой я сталкиваюсь, заключается в том, что, когда я пытаюсь получить доступ к своему репозиторию SVN через http://domain.tld/svn я получаю "Запрещено, у вас нет прав доступа к /svn/ на этом сервере".

Вот шаги для моей настройки:

yum install mod_dav_svn subversion

Содержимое /etc/httpd/conf.d/subversion.conf

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

<Location /svn>
   DAV svn
   SVNParentPath /var/www/svn
</Location>

Создать связанные пути

mkdir -p /var/www/svn && cd /var/www/svn
svnadmin create repos
chown -R apache:apache repos
service httpd restart

Я не могу понять, что не так...

Другие источники в CentOS 5.7 предложили это как дополнительный шаг:

chcon -R -t httpd_sys_content_t /var/www/svn/repos
chcon -R -t httpd_sys_rw_content_t /var/www/svn/repos

Когда я выполняю это, я получаю chcon: can't apply partial context to unlabeled file /var/www/svn/repos

Поэтому я оглянулся и нашел пользователя, который сказал, что я должен использовать

chcon -h system_u:object_r:httpd_sys_content_t /var/www/svn/repos
chcon -R -h apache:object_r:httpd_sys_content_t /var/www/svn/repos/*

вместо

chcon -R -t httpd_sys_content_t /var/www/svn/repos

поэтому я добавил также 2 строки для httpd_sys_rw_content_t:

chcon -h system_u:object_r:httpd_sys_content_t /var/www/svn/repos
chcon -R -h apache:object_r:httpd_sys_content_t /var/www/svn/repos/*
chcon -h system_u:object_r:httpd_sys_rw_content_t /var/www/svn/repos
chcon -R -h apache:object_r:httpd_sys_rw_content_t /var/www/svn/repos/*

Проблема все еще остается...

service httpd restart

Проблема все еще остается...

РЕДАКТИРОВАТЬ

Я также добавил правила аутентификации в subversion.conf:

<LimitExcept GET PROPFIND OPTIONS REPORT>
    AuthzSVNAccessFile /etc/subversion/svn-access
    # Require SSL connection for password protection.
    # SSLRequireSSL

    AuthType Basic
    AuthName "Authorization Realm"
    AuthUserFile /etc/subversion/svn-passwd
    Require valid-user
</LimitExcept>

Эти правила конфигурации скопированы из предыдущей установленной установки под SuSE. Файлы имеют действительный контент. Проблема все еще остается...

РЕДАКТИРОВАТЬ

Я удалил <LimitExcept GET PROPFIND OPTIONS REPORT> а также </LimitExcept> линии, так что аутентификация всегда применяется. Когда я теперь получаю доступ к SVN из браузера, я получаю окна HTTP-Basic-Auth. После ввода существующих и правильных учетных данных снова появляется сообщение "Запрещено". Проблема все еще остается...

РЕДАКТИРОВАТЬ

Я наконец запустил его. Я установил путь к хранилищу через SVNPath /var/www/svn/repos вместо SVNParentPath /var/www/svn, Сейчас все в порядке...

2 ответа

Решение

Вы должны указать Apache выполнить аутентификацию (чтобы у Subversion был пользователь для использования с правилами

В вашем месте добавить что-то подобное вам <Location> директива:

SSLRequireSSL

AuthType Basic
AuthPAM_Enabled on 
AuthName "Subversion"
AuthUserFile /etc/shadow
Require valid-user

В этом примере используется PAM, но есть много других возможностей: обратитесь к руководству по Apache httpd

Попробуй это:

<Location /svn>
    DAV svn
    SVNPath /var/www/svn
</Location>
Другие вопросы по тегам