Server-Side/Linux2011. 1. 4. 11:30
Intro
기본적으로 아파치와 OpenSSL이 설치되어 있다고 가정합니다.

데비안의 경우 Subversion을 설치하기 위해 zlib, libxml2, libexpat1 등의 패키지가 필요합니다.

이번에는 Berkeley DB를 쓰지않고 파일시스템에 저장하는 방식으로 설치를 합니다.

Download
subversion, subversion-deps를 download 하고 운영할 서버에 저장합니다.
# tar xzfv subversion-1.6.15.tar.gz -C /usr/local/
# tar xzfv subversion-deps-1.6.15.tar.gz -C /usr/local
# cd /usr/local/subversion-1.6.15
# ./configure --with-apxs=/usr/local/apache/bin/apxs --without-berkeley-db
# make 
# make install

Create Repository
# mkdir /home/svn
# cd /home/svn
# svnadmin create --fs-type fsfs sample
# chmod -R g+w sample
# chown nobody sample -R
# chgrp nobody sample -R

Apache Configuration
모듈이 추가 되었는지 확인하고 없으면 추가해준다. 주석처리가 되어있다면 풀어준다. 그리고 Location을 지정한다.
# vi /usr/local/apache/conf/httpd.conf
------------------------------------------------
LoadModule dav_module          modules/mod_dav.so
LoadModule dav_svn_module   modules/mod_dav_svn.so
.
.
.
<Location /svn/sample>
    DAV    svn
    SVNPath    /home/svn/sample
</Location>
------------------------------------------------

Access Subversion
웹 브라우저에서 http://your.ip.address/svn/sample 로 접속을 하고 다음과 같은 화면이 보이면 정상입니다.
sample - Revision 0: /
----------------------------------------------
Powered by Subversion version 1.6.15(r1038135)

Add user authentication
"htpasswd -c" 옵션은 패스워드 파일을 처음 만들때 사용하는 옵션이다. 전에 지정한 Location을 수정한다.
# cd /usr/local/apache/conf
# ../bin/htpasswd -c passwd sampleuser
New password: test
Re-type new password: test

# vi /usr/local/apache/conf/httpd.conf
<Location /svn/sample>
    DAV svn
    SVNPath    /home/svn/sample
    AuthType    Basic
    AuthName    "test"
    AuthUserFile    /usr/local/apache/conf/passwd
    <LimitExcept GET PROFIND OPTIONS REPORT>    => 체크아웃은 누구나, 커밋은 지정된 사용자만
        Require valid-user
    </LimitExcept>
</Location>

Reference
Posted by 준피