Linux ( CentOS 5 ) - Apache + SVN(Subvertion) 설치하기

Published on: 2011. 5. 20. 23:13 by louis.dev

자주 서버세팅을 하게 되는데 매일 찾아보는것도 그렇고 해서 기록으로 남깁니다.
yum을 통해 간단히 설치하고 설정해 보겠습니다.

따라 하시는 분들은 코드의 하이라이트된 부분만 입력하셔서 따라하시면 됩니다.

1. 아파치 설치하기

[root@localhost stylejg]# yum install httpd
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.daum.net
 * extras: ftp.daum.net
 * updates: ftp.daum.net
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.2.3-45.el5.centos.1 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================================================================================================================================================================================
 Package                                             Arch                                                 Version                                                                Repository                                             Size
=============================================================================================================================================================================================================================================
Updating:
 httpd                                               x86_64                                               2.2.3-45.el5.centos.1                                                  updates                                               1.2 M

Transaction Summary
=============================================================================================================================================================================================================================================
Install       0 Package(s)
Upgrade       1 Package(s)

Total size: 1.2 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating       : httpd                                                                                                                                                                                                                 1/2
  Cleanup        : httpd                                                                                                                                                                                                                 2/2

Updated:
  httpd.x86_64 0:2.2.3-45.el5.centos.1

Complete!
간단하게 아파치 설정을 끝냈습니다.

 2. SVN(subversion) 설치
 
 

[root@localhost stylejg]# yum install -y subversion
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.daum.net
 * extras: ftp.daum.net
 * updates: ftp.daum.net
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package subversion.i386 0:1.6.11-7.el5_6.3 set to be updated
---> Package subversion.x86_64 0:1.6.11-7.el5_6.3 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================================================================================================================================================================================
 Package                                                  Arch                                                 Version                                                           Repository                                             Size
=============================================================================================================================================================================================================================================
Updating:
 subversion                                               i386                                                 1.6.11-7.el5_6.3                                                  updates                                               3.1 M
 subversion                                               x86_64                                               1.6.11-7.el5_6.3                                                  updates                                               3.2 M

Transaction Summary
=============================================================================================================================================================================================================================================
Install       0 Package(s)
Upgrade       2 Package(s)

Total size: 6.4 M
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating       : subversion                                                                                                                                                                                                            1/4
  Updating       : subversion                                                                                                                                                                                                            2/4
  Cleanup        : subversion                                                                                                                                                                                                            3/4
  Cleanup        : subversion                                                                                                                                                                                                            4/4

Updated:
  subversion.i386 0:1.6.11-7.el5_6.3                                                                                   subversion.x86_64 0:1.6.11-7.el5_6.3

Complete!

3. SVN repository생성하기
소스코드의 버전을 관리할 SVN Repository를 생성합니다.


#루트에 "data" directory 생성
[root@localhost /]# mkdir /data
# "data" 디렉토리 안에 "svn"디렉토리 생성. "svn"이란 디렉토리가 svn root 디렉토리임. svn 디렉토리 아래에 프로젝트 별로 repository가 생성 됨
[root@localhost /]# mkdir /data/svn
[root@localhost /]# cd /data/svn/
# apache가 해당 디렉토리(svn 디렉토리)에 접근해야 함으로 디렉토리 소유자를 아파치로 변경
# cent OS의 경우 yum으로 아파치를 설치하면 apache:apache로 우분투에서는 www-data:www-data로 변경
[root@localhost /]#chown -R apache:apache svn
#svn Repository를 생성한다. svnadmin create [저장타입(현재는 파일시스템)] [RepositoryName] #저장타입은 파일시스템 타입과 버클리db타입이 있는데, 버클리db는 버그가 있기 때문에 파일 시스템으로 주로 선언합니다. #버클리db로 설정하려면 svnadmin create --fs-type bcb [RepositoryName] 으로 하면 됩니다. [root@localhost svn]# svnadmin create --fs-type fsfs svn_test #svn_test repository가 생성된걸 볼수 있다. [root@localhost svn]# ls -al 합계 8 drwxr-xr-x 6 root root 4096 5월 20 08:11 svn_test
3. 아파치와 SVN을 연동하기 위한 apache module 설치
[root@localhost svn]# yum install -y mod_dav_svn
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.daum.net
 * extras: ftp.daum.net
 * updates: ftp.daum.net
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package mod_dav_svn.x86_64 0:1.6.11-7.el5_6.3 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================================================================================================================================================================================
 Package                                                   Arch                                                 Version                                                          Repository                                             Size
=============================================================================================================================================================================================================================================
Installing:
 mod_dav_svn                                               x86_64                                               1.6.11-7.el5_6.3                                                 updates                                                79 k

Transaction Summary
=============================================================================================================================================================================================================================================
Install       1 Package(s)
Upgrade       0 Package(s)

Total download size: 79 k
Downloading Packages:
mod_dav_svn-1.6.11-7.el5_6.3.x86_64.rpm                                                                                                                                                                               |  79 kB     00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : mod_dav_svn                                                                                                                                                                                                           1/1

Installed:
  mod_dav_svn.x86_64 0:1.6.11-7.el5_6.3

Complete!


4. 접근할 수 있는 사용자와 비밀번호 추가

#htpasswd [옵션 : -c 파일생성, 맨 처음 파일 생성 할때만 옵션 줌,] [접근권한을 저장한 파일위치 AND 파일이름(파일이름은 사용자 마음데로)] [사용자아이디]
#즉 처음엔 -c 옵션을 붙이고, 두번째 사용자 추가 부터는 htpasswd /data/svn/svn_test/.passwd 사용자아이디 
#형식으로 추가 하면 됨
[root@localhost svn]# htpasswd -c /data/svn/svn_test/.passwd stylejg
New password:
Re-type new password:
Adding password for user stylejg

5. 아파치 설정

아파치를 yum 으로 설치하게 되면 /etc/httpd에 설정파일이 생기게 됩니다. 이쪽에 있는 아파치 설정파일에 svn 설정을 해주시면 됩니다.


[root@localhost httpd]# cd /etc/httpd/conf.d
[root@localhost conf.d]# ls -al
합계 32
-rw-r--r-- 1 root root  392  5월  4 03:54 README
-rw-r--r-- 1 root root  566  5월  4 03:54 proxy_ajp.conf
-rw-r--r-- 1 root root 1181  4월 14 04:49 subversion.conf
-rw-r--r-- 1 root root  299  5월  4 03:54 welcome.conf
#subversion.conf 파일에 svn 설정을 넣어줍니다.
#subversion.conf 파일에 주석처리 되어있는 설정이 있는데 예제임으로 지우시던지, 아니면 그냥 주석이 남겨진 채로 두시던지 하시면 됩니다.
[root@localhost conf.d]# vi subversion.conf

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

#Location 태그 뒤의 path는 물리적인 위치, 즉 svn파일이 저장되어있는 위치가 아니라
#SVN URL을 나태냅니다. 즉 아래와 같이 /svn/test라 하면 http://userdomain.com/svn/test 가 되는 것입니다.
#그러므로 Location 의 값은 실제 경로와 맞지 않고, 원하시는데로 작성하시면 됩니다.
<Location /svn/test>
  DAV svn
  #실제 svn repository의 저장위치를 설정합니다. 
  #여기는 위와는 다르게 실제 물리적인 path를 설정해 주셔야 합니다.
  SVNPath /data/svn/svn_test
  AuthType Basic
  AuthName "Subversion Repository C2"
  #3번째 단계에서 만들었던 비밀번호가 저장된 파일 위치를 적어줍니다.
  AuthUserFile /data/svn/svn_test/.passwd
  #위에서 설정한 파일에 있는 사용자만 다운로드 & 커밋을 할수 있게 해줍니다.
  Require valid-user
</Location>