Unix/Ubuntu

Ubuntu 에 SVN 서버 얹기 (아파치를 이용함)

ForceCore 2009. 4. 24. 17:06
https://help.ubuntu.com/community/Subversion
매뉴얼이 잘 되어 있긴 한데 패키지가 언급되어 있지 않다 -_-;;

1. subversion
2. libapache2-svn
3. libapache-mod-dav
3은 2를 설치하면 자동으로 설치되었던 것 같다.

이제 뭘 해야 하냐면...
/etc/apache2/mods-enabled/dav_svn.conf
파일을 수정해야 한다.

repository 하나를 추가할 때마다 이 설정파일 하나를 건드려야 한다.
설정 하는 방법은 그 파일 안에, 자세한 설명이 있으므로 자세한 설명은 생략하겠다.




필자는 이렇게 설정했다. 코멘트는 길이상 생략함.
<Location /svn/test>
  DAV svn
  SVNPath /export/svn/test

  AuthType Basic
  AuthName "Test Repository"
  AuthUserFile /export/svn/test/passwd
  Require valid-user
</Location>
Repository마다 유저/비번을 따로 두려는 것이다.
프로젝트마다 진행하는 사람이 다르고, 남의 것을 침범하면 좀 좋지 않아서 이런 구성을 하였다.

DAV svn 은 아래 지정된 path가 repository 모음이 아니라 한 개의 repository만 콕 집은 것이라는 것을 지칭.
SVNPath는 그 repository를 위치를 알려주는 것.
아래가 그 보안부분인데... 평소대로지만 또 설명하자면.
/export/svn/test/passwd 파일을 유저/비번 정보로 쓰겠단 것이다.
Require valid-user 가 있어야지 인증을 하라고 뜨게 된다.

설정을 다 했으니 아파치를 재시작... 하면 SVN이 잘 되면 좋겠는데 아직 잘 안 될 것이다. -_-;;
(아파치는 물론 재시작이 잘 된다.)

/export/svn/test 도 만들어야 하는데...
# svnadmin create /export/svn/test
# sudo chown -R www-data:www-data /export/svn/test

www-data 는 배포판마다 다를 수 있다. 그냥 아파치 사용자명이라서, 디렉토리를 아파치가 write할 수 있게 해주자는 내용이다.

이제 사용자 id-password 가 저장된 파일을 만들어 아파치 인증부분을 통과할 수 있게 해줘야 하겠다.
/export/svn/test/passwd 파일을 만들려면

$ htpasswd -cm /export/svn/test/passwd 사용자명

명령어로 최초 생성을 하면 되고, 이후 새로운 사용자를 추가만 할 때에는 옵션에서 c를 빼서
$ htpasswd -m 파일 사용자명
이면 충분하다.