Apache의 VirtualHost 환경에서 Subversion을 Multiple Repository 방식으로 설정했을 때 클라이언트 접근 불가 문제
Subversion을 사용할 때, 자신의 서버가 있다면 http://svn.example.com/[project name] 형태로, svn 이라는 호스트를 추가하여 사용하고 싶을 것이다. 이렇게 하나의 서버에서 www, svn 등의 여러 호스트를 추가하여 사용하고고 싶을 때 필요한 2가지 요소는 바로 VirtualHost와 Multiple Repository이다.
그러나 여기저기 알려진 대로 설정을 했을 때 겪게 되는 문제 중 하나가 바로, 설정을 마친 후에 웹브라우저를 통해 http://svn.example.com/[project name]/ 으로 접속해 보면, 내용이 나오는데, 클라이언트 프로그램(TortoiseSVN이나 eclipse의 subversion 플러그인)으로 접속 해 보면 다음과 같은 메세지만 보게 된다.
Repository moved permanently to 'http://svn.example.com/[project name]/'이것은 결론적으로 DocumentRoot 의 설정 문제이다. VirtualHost의 설정에서 DocumentRoot 설정을 삭제하면 된다. 좀 더 자세한 설정 확인을 위해 내가 설정한 내용을 올린다. OS는 Ubuntu-server를 사용한다.
VirtualHost 설정
<VirtualHost *:80>ServerName svn.example.comServerAdmin webmaster@localhost# 이 DocumentRoot 를 삭제해야 한다.# DocumentRoot /var/svn/svn.example.com<Directory />Dav svnSVNParentPath /var/svn/svn.example.comSatisfy AnyRequire valid-userAuthType BasicAuthName "example.com Repository"AuthUserFile /var/svn/svn.example.com/conf/htpasswdAuthzSVNAccessFile /var/svn/svn.example.com/conf/authz</Directory>ErrorLog /var/log/apache2/error.log# Possible values include: debug, info, notice, warn, error, crit,# alert, emerg.LogLevel warnCustomLog /var/log/apache2/access.log combined</VirtualHost>
궁금한 점이 있으면 댓글이나 메일 주시면 자세히 알려드리겠다.

- apache2 , dav_svn , Multiple Repository , subversion , svn , VirtualHost
1 Trackbacks
-
Maven release시 SVN 301 에러
새로운 개발장비가 들어와서 기존 개발장비에서 새 장비로 모두 이전하는 중 Maven release에서 이상한 에러가 발생했습니다. 환경 우분투 9.04 x86_64 apache2 svn 1.5.4 maven 2.2.1 현상 Maven release prepare 하다가 맨 마지막에 svn tag 하는 곳에서 에러 발생 prompt> mvn -Dusername=dykim -Dpassword=xxxx release:prepare .... [INFO] -..
8 Comments
-
안녕하세요.
아파치 httpd 에 subversion 을 연동해서 사용하시려는 것 같은데요,
2가지 중에 하나일 것 같습니다.
첫 째는, 아파치 httpd가 subversion이 설치된 경로에 접근 권한이 없는 경우입니다. httpd가 www-data, 혹은 apache 등의 권한으로 돌아가고 있을텐데, 그 권한으로 subversion의 저장소로 설정된 경로에 접근할 권한이 없어서 접속이 되지 않는 것입니다. 이 경우에는 아파치가 실행되는 권한을 확인한 후, subversion 저장소의 권한을 아파치 httpd가 접근 가능하도록 수정하는 것입니다.
둘 째는, subversion에 연결하는 경로가 잘못 된 것 같습니다. SVNParentPath로 경로를 설정할 경우에는 저장소 디렉토리의 바로 상위 디렉토리로 설정해야 하고, Location 등의 directive로 설정할 때는, 경로를 저장소 디렉토리로 설정해야 합니다.
해결이 어려우면 다시 질문 주세요.
그리고 메일 주소 등을 남겨서 메일로 답변을 요구하는것은 질문하는 사람으로써 바람직하지 않습니다. 자제해 주시면 좋겠네요. -
답변 감사합니다. 메일답변 부탁드렸던점 우선 죄송하게 생각합니다.
이것저것 삽질을 해봤는데 우선 제가 정확히 원하는건 https://www.u-service.kr
하고 웹브라우저에서 보면 현재 svn에 보관된 repository 목록이 보일수 있나 하는것입니다. 그러데 여기 저기 찾아보니까 그렇게 되어 있는것은 없는것 같구요. 이전에 질문한것 같이 The URI does not contain the name of a repository. 라구 메세지 나오는 것은 SVNParentPath .... 라고 지정해 놓고 생성한 repository 가 하나밖에 없을때 나오는 것 같습니다. 제가 맞게 생각하고 있는지 모르겠습니다. 확인부탁드릴께요. 그럼.... -
안녕하세요. 먼저, 웹브라우저에서 SVN Repository 목록을 보이는것에 대해서는,, 보이는 것을 원하시는 것인지, 안보이는 것을 원하시는 것인지 모르겠습니다만, 기본적으로 보입니다. 웹 브라우저로 저장소의 소스 목록에 접근 가능합니다.
그리고, "The URI does not contain the name of a repository." 메세지는 메세지 내용으로 봤을 때, 경로를 끝까지 적지 않으신 것 같네요. SVNParentPath 경로가 만약 http://example.com/svn/ 이라고 하고, 현재 생성된 프로젝트가 project1 이라면, http://example.com/svn/project1 이라고 경로를 입력해 보시기 바랍니다.
기괴한 황혼.
웹 화면에는
Forbidden
You don't have permission to access / on this server.
이라고 나오고 아파치 로그에는 다음과 같이 나옵니다.
The URI does not contain the name of a repository. [403, #190001]
확인 부탁드릴께요. 제 메일은 choe.taehyeon@gmail.com 입니다.
그럼...