无法通过http提交到SVN库

当我尝试通过http将项目导入到Subversion存储库时,出现以下错误:

 无法创build目录“/usr/local/svn/myproj/db/transactions/0-1.txn”:权限被拒绝 

我设置了httpd LogLevel进行debugging,并在输出结尾得到了这个:

  [Wed Feb 17 23:56:33 2010] [error] [client 24.205.225.190]无法创build活动/ svn / myproj /!svn / act / 9c0a8481-8edd-4be0-be2d-164c700616ba。  [500,#0]
 [Wed Feb 17 23:56:33 2010] [error] [client 24.205.225.190] could not begin a transaction [500,#13]
 [Wed Feb 17 23:56:33 2010] [error] [client 24.205.225.190]无法创build目录'/usr/local/svn/myproj/db/transactions/0-1.txn':Permission denied [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 http://myhostname/svn/myproj从NetBeans导入项目。

我正在使用CentOS Linux。

我在网上find的这个问题的修复方法是将存储库(和附件文件夹)设置为属于apache用户并修改相同的权限。 我已经尝试了以下没有成功:

  $ chown -R apache.apache / usr / local / svn
 $ chmod -R 755 / usr / local / svn
 $ service httpd restart 

我无法弄清楚还有什么可以尝试的。 请帮忙!

我猜你已经开启了SELinux(对于CentOS的默认安装是正常的)。 我相信httpd的安全策略默认情况下禁止访问/var/www之外的文件。 它当然不允许访问/usr/local 。 使用/var/www/svn作为存储库位置将阻止SELinux拒绝访问。

您是否已经创build或将现有的资源库目录移动到此位置?

 svnadmin创build/ usr / local / svn / insert_your_projectname

然后更新权限

 chown -R httpd:httpd / usr / local / svn
 chmod -R 755 / usr / local / svn
服务httpd重启

你可以在SVNParentPath / usr / local / svn或任何你想要的path上设置SVN,但是你必须做一些事情。

按照这一步。

  run command chcon -t httpd_sys_content_t /usr/local/svn 

Ps, – chcon是命令的relabels文件。

 - The httpd_sys_content_t type allows the httpd process to access that file. 

我得到了以下更改,但我不确定是哪个问题。

我将svn目录移至/ var / www,并对httpd.conf文件进行了以下更改:

  <Location / svn>
     DAV svn
     SVNParentPath / var / www / svn
     <LimitExcept GET PROPFIND OPTIONS REPORT>
         AuthType基本
         AuthName“Subversion版本库”
         AuthUserFile / etc / svn-auth-conf
        要求有效的用户
     </ LimitExcept中>
 </位置>