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를 이용해서 버전관리를 해주면 끝~


간단히 SVN 서버 설치 및 구축하기 - Ubuntu 14.04

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

*아래 절차는 혼자서 버전관리를 위해 SVN을 구축하고 싶지만 trunk, branch 등의 개념을 아직 잘 모르고 간단하게 사용하고 싶을 경우에 해보는 것을 추천합니다. 조금 더 자세히 SVN에 대해 알고 구축하고 싶다면 JoinC의 SVN Tutorial을 참고하길 추천합니다.

[JoinC SVN Tutorial 바로가기]


소스코드 또는 문서의 버전관리를 위해 많이 사용하는 SVN(Subversion) 서버를
Ubuntu 14.04 환경에서 구축하는 간단한 방법을 설명하고자 한다.

*구축 절차는 원문 링크의 내용을 기반으로 번역 및 일부 개정한 것이다.
[원문 링크]

Step 1. 업데이트 수행

# sudo apt-get update


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

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


Step 3. 저장소 및 저장소를 위한 폴더 생성
아래에서 사용하는 testrepo는 테스트를 위해 설정한 이름으로, 실제 사용할 이름이 있으면 변경 필요함.

# sudo mkdir -p /svn/repos/
# sudo svnadmin create /svn/repos/testrepo


Step 4. 저장소 소유권 변경

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


Step 5. 설정 파일 생성 및 내용 추가

# cd /etc/apache2/sites-available/
# sudo vim testrepo.conf

<Location /svn>

  DAV svn

  SVNParentPath /svn/repos/

  AuthType Basic

  AuthName "Test Repo"

  AuthUserFile /etc/svnpasswd

  Require valid-user

 </Location>


* AuthUserFile /etc/svnpasswd : Step 8에서 생성할 유저정보를 담은 파일


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

# sudo a2ensite testrepo


Step 7. 아파치 서버 reload

# sudo service apache2 reload


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

첫번째 유저 생성 시 -cm 옵션을 입력
# sudo htpasswd -cm /etc/svnpasswd user1

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


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

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


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

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


Linux Text mode로 부팅하기-Ubuntu 14.04

리눅스를 서버로 운용하기 위해서 필요없는 GUI를 띄우지 않고 바로 Console 형태인 TUI(Text Mode)로 부팅하는 방법을 적는다.

*구축 절차는 원문 링크의 내용을 기반으로 번역 및 일부 개정한 것이다.
[원문 링크]

Step 1. 백업 만들기
다시 Text mode에서 GUI 모드로 부팅하고 싶을 경우를 위해서 백업을 만드는게 좋다.

# sudo cp -n /etc/default/grub /etc/default/grub_origin


Step 2. grub 파일 내용 변경

# sudo vim /etc/default/grub

본문의 GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash” 부분을 찾아서, 문장의 시작부분에 '#'를 추가하여 주석처리 한다. purple screent을 비활성화(which will disable the Ubuntu purple screen)하기 위함이다.

본문의 GRUB_CMDLINE_LINUX=”" 을 GRUB_CMDLINE_LINUX=”text” 으로 변경한다. 우분투를 Text mode로 부팅하도록 하기 위함이다.

본문의 #GRUB_TERMINAL=console 부분을 찾아서, 문장의 시작부분에 있는 '#' 을 제거한다. Grub Menu를 블랙&화이트 텍스트 모드로 변경하기 위함이다.( this makes Grub Menu into real black&white Text Mode (without background image) )


Step 3. 변경내용 업데이트
앞에서 변경한 grub 의 내용을 시스템에 반영하기 위해 update 를 진행한다.

# sudo update-grub


Step 4. 시스템 재부팅
변경 내용대로 Text Mode로 부팅 되는지 시스템 재부팅을 통해 확인~

# sudo reboot now



이것으로 Text mode 부팅하기 끝~~



*백업을 만들어 두면 GUI 모드로 복구하고 싶을때는 아래와 같이 간단히 복구 가능하다.

# sudo mv /etc/default/grub_origin /etc/default/grub
# sudo update-grub