Fedora 13 32-битная
Apache 2.2.16
Настройка репозиториев Subversion в /var/www/svn
В этом каталоге есть два разных репозитория, поэтому мой /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>
После копирования моих репозиториев и использования;
chmod 755 -R /var/www/svn
chcon -R -t httpd_sys_content_t /var/www/svn
chown apache:apache -R /var/www/svn
Я могу нормально просматривать свои репозитории через браузер, и я могу обновлять все свои рабочие копии, однако, когда я пытаюсь зарегистрироваться из любого места, я получаю ту же ошибку
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
Андрей