我使用教程 How to set up a Subversion (SVN) server on GNU/Linux - Ubuntu 在Ubuntu上设置SVN,但是当我尝试使用CMD从其他计算机访问存储库时,它说禁止访问/ SVN
我更改了文件夹的权限,并尝试了其他方法来解决Apache服务器配置等问题,但这并没有解决我的问题。
如何解决此问题?
答案 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