我使用教程How to setup a Subversion (SVN) server on GNU/Linux - Ubuntu 在 Ubuntu 上设置了 SVN,但是当我尝试使用 CMD 从其他机器访问存储库时,它说Access to /SVN is disabled。
我更改了文件夹的权限并尝试了其他方法来解决问题,例如 Apache 服务器的配置,但这并没有解决我的问题。
我该如何解决这个问题?
我使用教程How to setup a Subversion (SVN) server on GNU/Linux - Ubuntu 在 Ubuntu 上设置了 SVN,但是当我尝试使用 CMD 从其他机器访问存储库时,它说Access to /SVN is disabled。
我更改了文件夹的权限并尝试了其他方法来解决问题,例如 Apache 服务器的配置,但这并没有解决我的问题。
我该如何解决这个问题?
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
确保您为 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
一次。
如果某人正在对以前有效的设置进行故障排除,这可能会有所帮助。今天我们公司的新人无意中在 AuthzSVNAccessFile 使用的文件中引入了一个错字,这导致我们所有人都经历了可怕的 E175013