当我尝试通过 http 将项目导入我的 subversion 存储库时,我收到此错误:
无法创建目录'/usr/local/svn/myproj/db/transactions/0-1.txn':权限被拒绝
我将 httpd LogLevel 设置为调试并在输出末尾得到这个:
[2010 年 2 月 17 日星期三 23:56:33] [错误] [客户端 24.205.225.190] 无法创建活动 /svn/myproj/!svn/act/9c0a8481-8edd-4be0-be2d-164c700616ba。[500, #0] [2010 年 2 月 17 日星期三 23:56:33] [错误] [客户端 24.205.225.190] 无法开始交易 [500,#13] [2010 年 2 月 17 日星期三 23:56:33] [错误] [客户端 24.205.225.190] 无法创建目录 '/usr/local/svn/myproj/db/transactions/0-1.txn':权限被拒绝 [500 , #13]
这是我的 httpd.conf 文件的相关部分:
<Location /svn>
DAV svn
SVNParentPath /usr/local/svn
AuthType Basic
AuthName "Subversion Repositories"
AuthUserFile /etc/svn-auth-conf
Require valid-user
</Location>
我正在尝试使用 URL 从 NetBeans 导入项目http://myhostname/svn/myproj
。
我正在使用 CentOS linux。
我在网上找到的解决此问题的方法是将存储库(和封闭文件夹)设置为属于 apache 用户并修改其权限。我尝试了以下方法但没有成功:
$ chown -R apache.apache /usr/local/svn $ chmod -R 755 /usr/local/svn $ 服务 httpd 重启
我不知道还能尝试什么。请帮忙!
您是否已经创建或将现有存储库目录移动到此位置?
然后更新权限
我猜你已经打开了 SELinux(对于 CentOS 的默认安装来说是正常的)。我相信 httpd 的安全策略
/var/www
默认禁止它访问外部文件。它当然不允许访问/usr/local
. 用作存储库位置将/var/www/svn
防止 SELinux 拒绝访问。您可以在 SVNParentPath /usr/local/svn 或任何您想要的路径设置 SVN,但您必须做一些事情。
按照这个步骤。
ps, -chcon是命令重新标记文件。
尽管我不确定哪个是问题所在,但我让它与以下更改一起工作。
我将 svn 目录移动到 /var/www 并对 httpd.conf 文件进行了以下更改: