为同一台服务器上的多个SVN存储库设置虚拟主机

我在EC2实例上有2个svn回购。
它们位于/ebs/svn/repo1/ebs/svn/repo2

我创build了一个域别名svn.mydomain.com ,指向上面的父目录( /ebs/svn )。

我想要使​​用以下URL格式访问每个上述回购:
svn.mydomain.com/repo1
svn.mydomain.com/repo2

当然,我有repo1与下面的vhostsconfiguration工作。

 <VirtualHost *:80> ServerName svn.mydomain.com ServerAlias svn.mydomain.com ErrorLog /var/www/html/log/svn.mydomain.com-log <Location "/" > DAV svn SVNPath /ebs/svn/repo1 AuthType Basic AuthName "SVN - Private - Repos" AuthUserFile /ebs/svn/login/svn-auth-conf Require valid-user </Location> </VirtualHost> 

问题是,我只能通过上面的vhostsconfiguration访问repo1

我想用以下格式访问这两个回购:
svn.mydomain.com/repo1
svn.mydomain.com/repo2

我需要改变什么来访问我的svn回购的目录?

因为你已经设置了SVNPath指令,所以你已经“硬编码”了path:

 SVNPath /ebs/svn/repo1 

请尝试使用SVNParentPath指令来configuration将容纳所有存储库的“顶部”目录。 用这个replace上面的行:

 SVNParentPath /ebs/svn/ 

如果您想允许用户查看所有可用存储库的列表(如果他们只是转到svn.mydomain.com ,则还应该添加以下行:

 SVNListParentPath on 

这将允许列出所有的存储库。 否则, svn.mydomain.com将显示“禁止”页面,而不是存储库列表。

总而言之,下面是一个完整的位置块示例:

 ‹Location "/"› DAV svn SVNParentPath /ebs/svn/ SVNListParentPath On SSLRequireSSL AuthType Basic AuthName "svn ebs" AuthUserFile conf/svnpasswd Require valid-user ‹/Location› 

我做了什么:(由@Oldskool回答)

 <VirtualHost *:80> ServerName svn.mydomain.com ServerAlias svn.mydomain.com ErrorLog /var/www/html/log/svn.mydomain.com-log <Location "/" > DAV svn # Delete SVNPath! SVNParentPath /ebs/svn/ # add this! SVNListParentPath on #Lists all the repos!! coool stuff! :D AuthType Basic AuthName "Private - Repos" AuthUserFile /ebs/svn/login/svn-auth-conf Require valid-user </Location> </VirtualHost> 

谢谢@Oldskool!


旧的方式
这是我发现的一种老方法,但是对于多个存储库,您将不得不添加多个标签。 (使用上面的@ oldSkool的答案,效果更好!) (注意<Location "/repo1"> ,所以基本上,为每个回购添加一个新的位置。

 <VirtualHost *:80> ServerName svn.mydomain.com ServerAlias svn.mydomain.com ErrorLog /var/www/html/log/svn.mydomain.com-log <Location "/repo1" > DAV svn SVNPath /ebs/svn/repo1 AuthType Basic AuthName "Private - Repo1" AuthUserFile /ebs/svn/login/svn-auth-conf Require valid-user </Location> <Location "/repo2" > DAV svn SVNPath /ebs/svn/repo2 AuthType Basic AuthName "Private - Repo2" AuthUserFile /ebs/svn/login/svn-auth-conf Require valid-user </Location> </VirtualHost>