이 글은 소스 설치 환경에서 아파치 + SVN 을 연동 하는 방법입니다.

subversion 아파치 모듈을 설치하기 전에 필요한 의존성 neon, SQLite 을 설치 합니다.

– neon 설치
(xml2 와 xml Parser 인 expat 라이브러리가 미리 설치 되어 있어야 합니다. 설치 안되신 분은 그냥 Skip 하셔도..)

http://www.webdav.org/neon/

[root@ruo91 ~]# cd /usr/local/src
[root@ruo91 ~]# wget http://www.webdav.org/neon/neon-0.29.0.tar.gz
[root@ruo91 ~]# tar xzvf neon-0.29.0.tar.gz
[root@ruo91 ~]# cd neon-0.29.0
[root@ruo91 ~]# ./configure –with-libxml2 –with-expat
[root@ruo91 ~]# make && make install

– SQLite 설치

http://www.sqlite.org/download.html

[root@ruo91 ~]# cd /usr/local/src
[root@ruo91 ~]# wget http://www.sqlite.org/sqlite-3.6.19.tar.gz
[root@ruo91 ~]# tar xzvf sqlite-3.6.19.tar.gz
[root@ruo91 ~]# cd sqlite-3.6.19
[root@ruo91 ~]# ./configure –disable-tcl
[root@ruo91 ~]# make && make install

– subversion 모듈 설치
아파치에서 svn 을 연동하기 위한 모듈을 아래 사이트에서 다운로드 받습니다.

http://subversion.tigris.org

[root@ruo91 ~]# cd /usr/local/src
[root@ruo91 ~]# wget http://subversion.tigris.org/downloads/subversion-1.6.6.tar.bz2
[root@ruo91 ~]# tar xjvf subversion-1.6.6.tar.bz2
[root@ruo91 ~]# cd subversion-1.6.6
[root@ruo91 ~]# ./configure \
–with-neon=/usr/local –with-sqlite=/usr/local –with-zlib=/usr/local \
–with-apr=/usr/local/apache2 –with-apr-util=/usr/local/apache2 \
–without-jdk –without-berkeley-db
[root@ruo91 ~]# make && make install

– 아파치 설정 및 테스트
설치가 완료되면 자동으로 httpd.conf 설정 파일에 해당 모듈이 붙습니다.

[root@ruo91 ~]# cat /usr/local/apache2/conf/httpd.conf | grep svn
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

svn 저장소를 웹으로 보기 위해선 아파치의 httpd.conf 설정 파일에 아래 내용을 추가 해줘야 합니다.
(필자는 인증 된 사용자만 허용 해주기 위해 아래와 같이 설정 해줬습니다.)

# SVN
<Location /svn>
DAV svn
# SVN 저장소 디렉토리
SVNParentPath /home/svn
# 인증 타입
AuthType Basic
# 인증 설명 이름
AuthName “Subversion repository”
# 인증 사용자 파일 지정
AuthUserFile /usr/local/apache2/conf/auth_user
Require valid-user
</Location>

아파치의 htpasswd 바이너리 파일을 이용하여 인증 사용자 추가를 합니다.

[root@ruo91 ~]# /usr/local/apache2/bin/htpasswd -cm /usr/local/apache2/conf/auth_user ruo91
New password:
Re-type new password:
Adding password for user ruo91

[root@ruo91 ~]# cat /usr/local/apache2/conf/auth_user
ruo91:$apr1$WiriXXvq$zvXNMXMgUaiSZ3KuwLPno0

여러 사용자가 있을때 해당 사용자만 추가 해주고 싶을 때에는 -c 옵션을 제거하고 만들어 주시면 됩니다.

[root@ruo91 ~]# /usr/local/apache2/bin/htpasswd -m /usr/local/apache2/conf/auth_user ruo911
New password:
Re-type new password:
Adding password for user ruo911

적용을 위해서 아파치 재시작을 합니다.

[root@ruo91 ~]# /usr/local/apache2/bin/apachectl restart

SVN 모듈이 잘 올라갔는지 PHP 정보를 확인 합니다.

[root@ruo91 ~]# echo ‘<?php phpinfo(); ?>’ > /usr/local/apache2/htdocs/phpinfo.php


 

이제 웹페이지에서 SVN 이 정상 작동 하는지 확인 합니다.

http://서버IP/svn/저장소이름

http://192.168.0.28/svn/repos