Apache 웹서버 상에 SVN (subversion) 설치하는 방법입니다.

appsroot님의 http://sarc.io/index.php/miscellaneous/29-os-x-apache-subversion-installation

자료를 조금 참고하였는데, 상황이 일치하지는 않습니다.

 

< 환경 및 설치 절차 >

 

1. OS : CentOS 6.4

2. Apache 웹서버는 2.2.27이 이미 컴파일 설치되어 있었습니다. 

3. SVN은 yum으로 패키지 설치했고 1.6.x 버전 정도 되는 것 같습니다.

4. Apache 웹서버와 SVN 연동을 위한 mod_dav_svn도 yum으로 설치했습니다. (mod_dav_svn.x86_64)

 

 

< 상세 작업 >

 

우선 위에서 말씀드린 4. mod_dav_svn 설치를 하게 되면 다음 파일 2개가 어딘가(?) 생성됩니다.

  • mod_dav_svn.so
  • mod_authz_svn.so

그러면 이 두 파일을 Apache 웹서버의 modules 디렉토리에 복사합니다.

 

그리고 Apache 웹서버의 httd.conf에 svn 연동을 위한 extra conf를 include 합니다.

Include /conf/extra/httpd-vhosts-svn.conf

 

그리고 httpd-vhosts-svn.conf 파일을 다음과 같이 생성합니다.

LoadModule dav_svn_module   modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

    ServerName   svn.jeeg.sarc.io
    ServerAlias  svn.jeeg.sarc.io
    DocumentRoot "/data/svn/htdocs"
    ServerAdmin  이 이메일 주소가 스팸봇으로부터 보호됩니다. 확인하려면 자바스크립트 활성화가 필요합니다.

    SetEnvIf Request_URI "\.(gif)|(jpg)|(swf)|(png)$" image_log

    CustomLog    "/logs/svn_access_log.log"       common env=!image_log
    CustomLog    "/logs/svn_access_image_log.log" common env=image_log
    ErrorLog     "/logs/svn_error_log.log"

    <Location /sarc>    
        DAV                svn
        SVNPath             "/data/svn/repo/svn/sarc"
        AuthType           Basic
        AuthName           "OMS SVN Repository"
        AuthUserFile       "/data/svn/repo/svn/sarc/authz/passwd"
        AuthzSVNAccessFile "/data/svn/repo/svn/sarc/authz/authz"
        Require valid-user
  </Location> <Directory "/data/svn/htdocs"> Options FollowSymLinks MultiViews AllowOverride None Order deny,allow Deny from all Allow from all
</Directory>

 

여기까지 대략 Apache 웹서버 작업이 되었습니다.

이제는 본격적으로 SVN 작업이 시작됩니다.

 

먼저 SVN 저장소를 생성합니다. (/data/svn/repo/svn/sarc)

$ cd /data/svn/repo/svn
$ svnin -c sarc

 

저장소 디렉토리 내에 패스워드 및 인증정보를 저장할 디렉토리인 authz 를 만들고,

htpasswd 를 이용하여 SVN 계정을 생성합니다. (admin)

그리고 패스워드 파일은 /data/svn/repo/svn/sarc/authz/passwd로 생성됩니다.

$ mkdir -p /data/svn/repo/svn/sarc/authz
$ htpasswd -c /data/svn/repo/svn/sarc/authz/passwd admin New password: Re-type new password:

 

다시 저장소의 authz 디렉토리 내에 인증관련 파일인 authz 파일을 생성합니다.

$ vi /data/svn/repo/svn/sarc/authz/authz
[groups]
repo = admin

[sarc:/]
@repo = rw
*=

 

이제 브라우저로 http://svn.jeeg.sarc.io/sarc 하면..