Apache-2.2

同一伺服器上多個 SVN 儲存庫的虛擬主機設置

  • December 27, 2012

我的 EC2 實例上有 2 個 svn 儲存庫。

它們位於/ebs/svn/repo1&中/ebs/svn/repo2

我創建了一個域別名svn.mydomain.com,以指向上述 ( /ebs/svn) 的父目錄。

我想使用以下 URL 格式訪問上述每個 repo:

svn.mydomain.com/repo1

svn.mydomain.com/repo2

目前我有 repo1 使用以下 vhosts 配置。

<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>

問題是,我只能repo1通過上述 vhosts 配置訪問。

我想以下列格式訪問這兩個 repo:

svn.mydomain.com/repo1

svn.mydomain.com/repo2

我需要更改什麼才能通過他們的目錄訪問我的 svn 儲存庫?

因為您已經設置了SVNPath指令,所以您已經“硬編碼”了路徑:

SVNPath /ebs/svn/repo1

嘗試使用該SVNParentPath指令來配置將包含所有儲存庫的“頂級”目錄。將上面的行替換為:

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›

引用自:https://serverfault.com/questions/461144