2009-03-28 2 views
4

나는 VPS가 있고 여러 SVN 프로젝트를 호스트하려고합니다. 내가 이렇게 될하기 위해 URL 경로를 싶습니다 위치 블록이의 DocumentRoot보다 우선으로이 특정 URL 구성으로 SVN을 제공하도록 Apache를 어떻게 설정할 수 있습니까?

http://svn.domain.com -> Welcome HTML page (at /var/www/svn.domain.com/httpdocs/index.php) 
http://svn.domain.com/project1 -> Project 1 SVN Root 
http://svn.domain.com/project2 -> Project 2 SVN Root 
http://svn.domain.com/project3 -> Project 3 SVN Root 

그러나, 아래의 코드로, 우선 (환영 HTML 페이지), 표시되지 않습니다.

위치 블록을 <Location /repos>으로 설정하면 내 URL이 http://svn.domain.com/repos/project1이됩니다.

제안 사항?

<VirtualHost *> 
     ServerName svn.domain.com 
     DocumentRoot /var/www/svn.domain.com/httpdocs 
     <Location /> 
       DAV svn 
       SVNParentPath /var/svn 
       SVNIndexXSLT "/svnindex.xsl" 

       AuthzSVNAccessFile /var/svn/access 

       SVNListParentPath On 
       # try anonymous access first, resort to real 
       # authentication if necessary. 
       Satisfy Any 
       Require valid-user 

       # how to authenticate a user 
       AuthType Basic 
       AuthName "Subversion repository" 
       AuthUserFile /var/svn/passwd 
     </Location> 
</VirtualHost> 

<Directory /var/svn> 
     Allow from all 
</Directory> 

답변

1

당신이 SVNPATH 지시어를 사용할 수 있습니다,하지만 당신은 (각 프로젝트는 자신의 필요) 세 위치를 설정해야

+0

나는 이렇게 할 필요가 없기를 바라며, 아파치 설정에서 부족한 부분을 알고있다. -/ –

0

당신은 당신의 아파치 설정 추가 할 때마다 변경하지 않고이 문제를 해결 얻을 수 귀하의 SVN 저장소에 대한 하위 도메인을 추가하여 새 프로젝트. 이 같은 끝낼 것 :

<VirtualHost *> 
    ServerName svn.domain.com 
    DocumentRoot /var/www/svn.domain.com/httpdocs 
    <Location /svn> 
      DAV svn 
      SVNParentPath /var/svn 
      SVNIndexXSLT "/svnindex.xsl" 

      AuthzSVNAccessFile /var/svn/access 

      SVNListParentPath On 
      # try anonymous access first, resort to real 
      # authentication if necessary. 
      Satisfy Any 
      Require valid-user 

      # how to authenticate a user 
      AuthType Basic 
      AuthName "Subversion repository" 
      AuthUserFile /var/svn/passwd 
    </Location> 

    <Directory /var/svn> 
    Allow from all </Directory> 

    <Directory /var/www/svn.domain.com/httpdocs> 
     # Doc. root directives here</Directory> 

당신은 다음 양식 http://svn.domain.com/svn/project1/의 URL을 사용하여 저장소에 액세스해야 할 것이다, 그러나 당신이 등 project4을 추가하려는 경우 당신이해야 할 모든이를 추가입니다/var/svn 아래의 새로운 저장소.

+0

하위 도메인이 아니라 하위 디렉토리를 의미한다. 그러나 이것은 사실이다. 나는 피하려고 노력하고 있었다 :). 그래도 고마워. –

0

mod_rewrite? 비 SVN 파일 (http://example.com/info/)을위한 폴더를 설정 한 다음 mod_rewrite를 사용하여 '/'또는 '/index.php'에 대한 요청을 '/info/index.php'로 리디렉션 할 수 있습니다. 그게 효과가 있니?

+0

이 솔루션을 시도했지만 실패했습니다. 나는 정확히 왜 그런지 모르지만, 나는 그저 효과가 없다고 확신한다. 나는 내일 또 다른 해킹을하고 다시보고 할 것이다. –

+1

한 번 활성화 된 하위 위치에서 DAV를 비활성화 할 수 없기 때문에 DAV 아래의 위치를 ​​사용하면 작동하지 않습니다. 그러나 mod rewrite를 사용하여 다른 도메인으로 리디렉션하면'RewriteRule ^/info/(.*)$ http : // someotherhost/info/$ 1 [R]'가 작동합니다. – mandrake

관련 문제