当前设置
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 设置为以用户 apache 和组 apache 身份运行。所以据我所知,我的设置是正确的。但行为却不正确。
有任何想法吗?
解决方案
我能够让它工作的唯一方法是禁用 SELinux,也可以通过使用 SELinux 设置适当的布尔值来实现setsetbool
,getsebool
因为这只是一个家庭服务器,所以我决定禁用 SELinux 并且现在正在获得好处。
答案1
不要让 拥有目录apache:apache
,而是使用apache:subversion
。也就是说,
chown apache:subversion -R /var/www/svn
安德鲁
答案2
使 SVN 通过 webdav 写入工作的 SELINUX 布尔值是:
setsebool -P httpd_unified=1
我的朋友在一年多前就遇到过这个问题并且找到了解决办法。
http://www.melange.co.jp/blog/?s=setsebool&submit=Search (日文)
他的名字叫伊藤,是一名清酒爱好者,住在日本东京南部。
我正在为他发布此内容。