자주 서버세팅을 하게 되는데 매일 찾아보는것도 그렇고 해서 기록으로 남깁니다.
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>