禁止访问/ svn

时间:2013-11-05 08:51:16

标签: apache svn

我使用教程 How to set up a Subversion (SVN) server on GNU/Linux - Ubuntu 在Ubuntu上设置SVN,但是当我尝试使用CMD从其他计算机访问存储库时,它说禁止访问/ SVN

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

如何解决此问题?

3 个答案:

答案 0 :(得分: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

答案 1 :(得分: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然后重试。

答案 2 :(得分:0)

如果他们正在对之前一直有效的设置进行故障排除,这可能会有所帮助。今天,我们公司的新人无意中在AuthzSVNAccessFile使用的文件中引入了一个拼写错误,这让我们所有人都体验到了可怕的E175013