SVN 서버 설치 및 웹 접속 설정-Ubuntu 14.04

[SVN 서버 구축하기 - Ubuntu 14.04]

SVN 서버 설치하고 웹 기반으로 접속할 수 있도록 apache 서버와 연동하는 방법을 함께 정리하고자 한다.


[참고 사이트]
1. SVN 설치 1
2. SVN 설치 2
3. SVN 설치 3
3. Apache 명령어 이해-블로그
4. Apache 명령어 이해-공식 사이트


[ SVN 서버 및 Apache 서버 설치 ]

1. 업데이트 수행

# sudo apt-get update


2. svn 서버와 아파치 서버 설치(SVN을 웹으로 접근하기 위해 필요)

# sudo apt-get install subversion apache2 libapache2-svn apache2-utils

[SVN 서버 설정]

1. 저장소 및 저장소를 위한 폴더 생성
아래에서 사용하는 testrepo는 테스트를 위해 설정한 이름으로, 실제 사용할 svn 저장소 이름이 있으면 해당 이름으로 변경해서 사용하면 된다.
*저장소 파일시스템은 일반 파일시스템 형식(fsfs)과 버클리 db(bdb: berkeley db) 형식으로 만들 수 있는데, 일반 파일시스템 형식이 추후 백업, 공유 등을 할때 문제 생길 요소가 적다고 한다. 정확한 이유는 모름.

$ sudo mkdir -p /svn/repos/
$ sudo svnadmin create --fs-type fsfs /svn/repos/testrepo


2. 계정 및 비밀번호 설정
testrepo 라는 이름으로 저장소를 생성하면 해당 폴더의 conf 폴더에 svnserve.conf 파일과 passwd 파일이 존재한다. passwd 파일을 이용해 계정과 비밀번호를 관리할 것이며, passwd 파일을 이용하기 위해 svnserve.conf 파일을 함께 수정해야 한다.

2.1 svnserve.conf 파일 수정
anon-access, auth-access, password-db 를 찾으면 모두 '#' 으로 시작함을 알 수 있다.
'#'는 주석처리를 의미하므로 '#'을 제거하여 옵션들을 활성화 시킨다.

$ cd /svn/repos/testrepo/conf/
$ sudo vim svnserve.conf

anon-access = read
auth-access = write
password-db = passwd


2.2 passwd 파일 수정
svn 접속 시 사용 할 id, pw를 'id = pw' 와 같은 형식으로 아래와 같이 추가해준다.

$ sudo vim passwd

[users]
test = 1234


3. SVN 서버 실행 및 확인
svn 서버를 아래 명령어로 실행한다.

$ svnserve -d -r /svn/repos/


정상적으로 실행이 됐는지 확인을 해보자. 명령어 입력 후 아래의 결과를 받으면 OK.

$ ps -ef | grep svnserve






4. OS 부팅 시 자동실행 등록
이대로 마치면 os 부팅시마다 svn 서버를 다시 실행시켜야 한다. 그런 번거로움을 없애기 위해 rc.local에 svn 서버 실행파일(svnserve)이 있는 경로(/usr/bin/)와 함께 추가한다.

$ sudo vim /etc/rc.local
# By default this script does nothing.
/usr/bin/svnserve -d -r /svn/repos/
exit 0


svn 설정은 이걸로 끝. 이제 아파치 서버 설치와 설정을 해보자.


[Apache 서버 설치 및 설정]


1. 저장소 소유권 변경

$ sudo chown -R www-data:www-data /svn/repos/testrepo


2. 설정 파일 생성 및 내용 추가
testrepo.conf 파일은 생성을 할 것이며, 저장소 이름과 반드시 동일해야 한다.

$ cd /etc/apache2/sites-available/
$ sudo vi testrepo.conf

<Location /svn>

  DAV svn

  SVNParentPath /svn/repos/

  AuthType Basic

  AuthName "Test Repo"

  AuthUserFile /svn/repos/svnpasswd

  Require valid-user

 </Location>


* AuthUserFile /svn/repos/svnpasswd : Step 5에서 생성할 유저정보를 담은 파일의 경로를 나타내며, 등록된 사용자만 읽기 허용하기 위함이다.


3. 웹 서버 활성화( 아래의 testrepo는 앞에서 테스트를 위해 설정한 이름으로, 동일해야 함)

$ sudo a2ensite testrepo


4. 아파치 서버 reload

$ sudo service apache2 reload


5. 유저 생성
첫번째 유저과 그 이후의 유저 생성은 옵션이 다르니 유의해야 함.

첫번째 유저 생성 시 -c 옵션을 입력
$ sudo htpasswd -c /svn/repos/svnpasswd user1

그 이후 유저 생성 시 -m 옵션을 입력
$ sudo htpasswd -m /svn/repos/svnpasswd user2


6. SVN 확인!!
웹 브라우져를 이용하여 아래의 경로로 접속하여 testrepo 저장소가 정상적으로 생성됐는지 확인.

URL : http://yourip/svn/testrepo (Eg http://10.0.1.15/svn/testrepo)


ID, PW를 입력하는 창이 뜨면 앞에서 설정한 정보(ID, PW)를 입력한다.

이렇게 SVN 서버 구축이 마무리 되었다.

이제 SVN client를 이용해서 버전관리를 해주면 끝~


댓글 2개:

  1. 좋은글 감사합니다. 따라하다가 DAV 모듈이 없다고 나와서 다른 곳에서 찾아보니, "sudo a2enmod dav_svn"를 입력하니 아파치2 모듈에 enable됐다고 나오네요.
    또, grad.conf를 안 찾고 mod-enable에 있는 dav.conf 파일을 읽어서 그곳을 위에 써져있는 것 처럼 바꿨습니다.

    답글삭제
    답글
    1. 댓글 알림 설정을 해놓질 않아 이제야 봤네요. 우선 부실한 글이 조금이나마 도움이 되었다면 다행이네요 ㅎㅎ 말씀하신 내용은 disable 되어있는 아파치 모듈을 enable 시켰다는 것 같은데, 모듈 초기 설정이 다를 수도 있나보네요. 저도 그 부분은 잘 몰라서 미리 봤더라도 도움 드리기는 힘들었겠네요 ^^; 글 시작에 기재한 참조사이트 중 하나인 http://webdir.tistory.com/196 를 확인해보시면 조금 더 자세한 내용이 있으니 도움 되실것 같네요. 그럼 수고하세요.

      삭제

안녕하세요 :)