Ошибка SVN с Apache 2.2: «Forbidden У вас нет прав на доступ к /repos на этом сервере»

Ошибка SVN с Apache 2.2: «Forbidden У вас нет прав на доступ к /repos на этом сервере»

Я следил заэто руководство по установке svnи когда я пытаюсь получить доступ к своему тестовому репозиторию, перейдя по адресу http://localhost/repos, я успешно прохожу аутентификацию, но затем получаю это:

"Forbidden You don't have permission to access /repos on this server"

Вот мой файл subversion.conf:

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


<Location /repos>
   DAV svn
   SVNParentPath /var/www/svn/repos
#
#   # Limit write permission to list of valid users.
#   <LimitExcept GET PROPFIND OPTIONS REPORT>
#      # Require SSL connection for password protection.
#      # SSLRequireSSL
#
      AuthType Basic
      AuthName "Subversion repos"
      AuthUserFile /etc/svn-auth-conf
      Require valid-user
#   </LimitExcept>
</Location>

Мой путь - /var/www/svn/repos и вот мои права доступа

[root@localhost svn]# ls -la repos/
total 32
drwxr-xr-x. 6 apache apache 4096 Aug 24 11:42 .
drwxr-xr-x. 3 root   root   4096 Aug 24 11:42 ..
drwxr-xr-x. 2 apache apache 4096 Aug 24 13:50 conf
drwxr-sr-x. 6 apache apache 4096 Aug 24 11:42 db
-rwxr-xr-x. 1 apache apache    2 Aug 24 11:42 format
drwxr-xr-x. 2 apache apache 4096 Aug 24 11:42 hooks
drwxr-xr-x. 2 apache apache 4096 Aug 24 11:42 locks
-rwxr-xr-x. 1 apache apache  229 Aug 24 11:42 README.txt

Если я перехожу в localhost/repos/README.TXT, я получаю это сообщение.

<D:error><C:error/><m:human-readable errcode="20">
Could not open the requested SVN filesystem
</m:human-readable></D:error>

Любое другое имя файла даст errcode ="2" вместо этого.

selinux настроен на разрешающий режим, я прекрасно вижу файл localhost/index.html, расположенный по адресу var/www/html/index.html.

Я прочитал несколько десятков сообщений на форуме с похожими проблемами, но безрезультатно.

Любые идеи были бы хорошы!

ПРАВКА 1:

Я отредактировал файл subversion.conf, изменив SVNParentPath /var/www/svn/reposего на , SVNParentPath /var/www/svnно, похоже, это не дало никакого эффекта.

ПРАВКА 2:

brain99 справился. Изменение на Location />решило проблему, и теперь я получаюrepos - Revision 0: /

Powered by Subversion version 1.6.11 (r934486).

решение1

Похоже, вы путаете директивы SVNPath и SVNParentPath.

Из того, что вы постите, похоже, что /var/www/svn/reposсодержит один репозиторий. В этом случае используйте

SVNPath /var/www/svn/repos

Только если у вас есть несколько репозиториев, вам следует использовать SVNParentPath. Каждый отдельный репозиторий должен быть расположен в подпапке каталога, который вы здесь настраиваете.

Поэтому либо укажите родительский каталог:

SVNParentPath /var/www/svn

Или оставьте конфигурацию как есть и переместите текущий репозиторий в подкаталог, например /var/www/svn/repos/myRepo

Для получения дополнительной информации об использовании mod_dav_svn проверьтеРаздел книги SVN на mod_dav_svn

решение2

Сначала проверьте, существует ли каталог SVNParentPath /var/www/svn/repos. Затем проверьте, есть ли подкаталоги? должны быть директории репозиториев с его собственными базами данных. Если каталог пуст или не имеет подкаталогов, создайте любой репозиторий с помощью команды svnadmin (вызовите manual). После создания проблема все еще существует? Затем закомментируйте все директивы AUTH* и require и перезапустите apache. Доступ будет анонимным, но вы проверите, есть ли проблема с авторизацией. Когда доступ возможен, проблема в авторизации. Вы должны настроить это. Вы должны прочитать man apache и узнать, как управлять AuthUserFile /etc/svn-auth-conf для базовой авторизации. Когда проблема (с закомментированной auth) все еще существует, проблема в правах доступа к файлу. Настройте доступ на чтение и запись для имени пользователя, используемого сервером apache. ps auxww сообщит вам, что это за пользователь. Номер группы вы получите из файла /etc/passwd. Имя группы вы получите из файла /etc/group. После этого, когда вы сможете извлекать/обновлять и фиксировать, вы сможете решить проблемы с авторизацией. Существует множество рецептов. Я ввел в Google запрос «svn create my first repository» и получил множество ответов. Первый пример: http://queens.db.toronto.edu/~nilesh/linux/subversion-howto/ Попробуй это :)

Кстати, CentOS — это дистрибутив Linux, похожий на RedHat. Вы можете перезапустить Apache с помощью команды /etc/init.d/httpd start/stop. Посмотрите, что пишется в файлы /etc/apache или /etc/httpd (в зависимости от дистрибутива Linux и конфигурации Apache по умолчанию).

решение3

попробуйте эти параметры: SVNListParentPath on

Связанный контент