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

'txn-current-lock': в доступе отказано [500, # 13] - проблема конфигурации Subversion + Apache

Текущая настройка

В этом каталоге есть два разных репозитория, поэтому мой /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
   SVNListParentPath on
   SVNParentPath /var/www/svn

   <LimitExcept GET PROPFIND OPTIONS REPORT>
      AuthType Basic
      AuthName "Subversion Repository"
      AuthUserFile /etc/httpd/.htpasswd
      Require valid-user
   </LimitExcept>
</Location>

После копирования моих репозиториев и использования;

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

Can't open file '/var/www/svn/repo/db/txn-current-lock':Permission denied

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

Все, что я прочитал, похоже, указывает на то, что разрешения для apache неверны, однако apache настроен на запуск как User apache и Group apache. Итак, насколько я могу судить, мои настройки верны. Однако поведение не такое.

Любые идеи?

Решение

Единственный способ заставить это работать - отключить SELinux, это также можно сделать, установив правильные логические значения с помощью SELinux через setsetbool и getsebool так как это всего лишь домашний сервер, я решил отключить SELinux и теперь пожинаю плоды.

Логическое значение SELINUX для записи через webdav в SVN:

setsebool -P httpd_unified = 1

Мой друг столкнулся с этой проблемой и нашел решение более года назад.

http://www.melange.co.jp/blog/?s=setsebool&submit=Search (написано на японском языке)

Его зовут Ито, он любит сакэ, живет в Японии, к югу от Токио.

Я отправляю это ему.

Вместо того, чтобы каталоги принадлежали apache:apache, используйте apache:subversion. То есть,

chown apache:subversion -R /var/www/svn

Андрей