2

我使用教程How to setup a Subversion (SVN) server on GNU/Linux - Ubuntu 在 Ubuntu 上设置了 SVN,但是当我尝试使用 CMD 从其他机器访问存储库时,它说Access to /SVN is disabled

我更改了文件夹的权限并尝试了其他方法来解决问题,例如 Apache 服务器的配置,但这并没有解决我的问题。

我该如何解决这个问题?

4

3 回答 3

4

Apache 可以读取和写入存储库,但它的用户 ( www-data) 需要被授予它的所有权:

sudo chown -R www-data:www-data /var/svn/repositories/your_repo

为了能够对访问存储库的用户进行身份验证,需要密码文件:

sudo htpasswd -c /etc/subversion/passwd your_user_name

输入用户的密码your_user_name。对于其他用户,重复该命令而不-c选择确保附加而不是替换现有文件的选项。

然后编辑 Apache 配置文件:

sudo gedit /etc/apache2/apache2.conf

将以下内容添加到文件末尾:

#svn users
<Location /svn>
     DAV svn
     SVNParentPath /var/svn/repositories/
     SVNListParentPath On
     AuthType Basic
     AuthName "Test"
     AuthUserFile /etc/subversion/passwd
     <LimitExcept GET PROPFIND OPTIONS REPORT>
        Require valid-user
     </LimitExcept>
  </Location>

保存配置文件并重启 Apache:

sudo /etc/init.d/apache2 restart

现在可以通过以下方式访问测试存储库:

http://localhost/svn/your_repo
于 2013-11-05T09:10:11.760 回答
1

确保您为 Apache 设置了这样的虚拟主机:

<VirtualHost *:80>
    DocumentRoot /home/svn/html
    ServerName svn.domainname
    ErrorLog logs/svn.domain.com-error_log
    CustomLog logs/svn.domain.com-access_log common

    <Directory "/home/svn/html">
        Order allow,deny
        Allow from all
        AllowOverride all
    </Directory>

    <Location /repos>
        DAV svn
        SVNParentPath /home/svn/repos

        Require valid-user
        SVNListParentPath on
        AuthType Basic
        AuthName "Your Super SVN"
        AuthUserFile /home/svn/svn-passwords-file-to-be-used-only-when-AuthType-is-used
        AuthzSVNAccessFile /home/svn/svn-repos-acl-file-but-optional
    </Location>
</VirtualHost>

并确保 Apache 可以repos访问SVNParentPath. 这个问题主要是因为权限。再试chmod -R 0777 repos-folder一次。

于 2013-11-05T09:01:38.607 回答
0

如果某人正在对以前有效的设置进行故障排除,这可能会有所帮助。今天我们公司的新人无意中在 AuthzSVNAccessFile 使用的文件中引入了一个错字,这导致我们所有人都经历了可怕的 E175013

于 2017-04-17T20:56:20.797 回答