尝试在Ubuntu 14.04上设置SVN服务器,但无法检出svn

时间:2014-08-01 11:14:33

标签: svn ubuntu apache2

我在Ubuntu Server 14.04上安装了subversionlibapache2-svn。我可以在本地检查一个svn而没有任何问题所以我知道Subversion正在工作。

我试图在Windows机器上使用TortoiseSVN检查它,但是当我这样做时,我得到以下错误列表:

无法通过网址' http://myurl.com/svn/testproject'

连接到存储库

意外的HTTP状态500'内部服务器错误' on' / svn / testproject'

其他错误:

OPTIONS请求' / svn / testproject'失败:500内部服务器错误

testproject中,我的passwd文件如下:

[users]
username1 = password1

和我的authz文件如下

[groups]
username1_group = username1

[/svn/testproject]
@username1_group = rw

/etc/apache2/mods-enables/dav_svn.conf如下:

<Location /svn/testproject>
     DAV svn
     SVNPath /svn/testproject
     AuthType Basic
     AuthName "myproject subversion repository"
     AuthUserFile /svn/tesproject/conf/passwd
     Require valid-user
</Location>

我对它的理解是,这应该足以让我在上面的以下网址查看我的svn。 TortiseSVN提示我输入用户名和密码,但我passwd文件中的组合不起作用。我哪里错了?

2 个答案:

答案 0 :(得分:1)

我看到很多错误,错误和错误解释

  • 如果您的存储库由Apache(而不是svnserve)提供,则纯文本passwd文件将无效:您必须build password-file使用htpasswd
  • 必须使用相交的位置和SVNPath | SVNParentPath(它将是不定式循环或重定向结果)
  • authz - 文件在您的配置中没有任何意义,因为您尚未使用AuthzSVNAccessFile启用Path-Based Authorization
  

Subversion通过提供Apache中基于路径的访问控制   mod_authz_svn模块,必须使用LoadModule加载   httpd.conf中的指令与mod_dav_svn本身的方式相同   加载。为了能够将此模块用于您的存储库,您需要   添加AuthzSVNAccessFile指令

  • [/svn/testproject]是authz文件也是完全不正确的定义,因为它定义了单个存储库中的路径/svn/testproject ,而不是存储库的根目录,正如你所料。

来自SVN Book

  

如果您正在使用SVNParentPath指令,那么指定它很重要   您的部分中的存储库名称。如果省略它们,则为一节   例如[/ some / dir]将匹配每个存储库中的路径/ some / dir。   但是,如果您正在使用SVNPath指令,则可以提供   只有你的部分中的路径 - 毕竟,只有一个存储库。

用于恢复最小功能的必须修复是第1-2页

答案 1 :(得分:0)

更改

[组]

username1_group = username1

[组]

username1_group = 密码