블로그 이미지
BJcomm
bjcomm

공지사항

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

calendar

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
12-04 01:41

1. 상태

1-1. 기존의 웹서버가 운영되고 있었음

1-2. 운영체제는 centos7 이며 svn은 설치되어 있지 않음

1-3. 별도의 서버가 운영되고 있음



2. 요구사항

2-1. 외부에서 다수의 사용자가 접속하여 버전 관리가 가능해야함

2-2. commit 시 자동으로 웹서버에 파일들을 적용 되어야 함


 


3. svn 설치 여부 확인


[root@localhost ~]# svnserve --version


에러가 발생한다면 미설치 상태 입니다.



4. svn 설치


[root@localhost ~]# yum install subversion


중간의 질문을 한다면 y를 눌러서 설치합니다.


 


5. 관리를 편하게 하기 위해 svn 이라고 별도의 디렉토리 생성


[root@localhost ~]# mkdir /svn

[root@localhost ~]# cd /svn


관리를 편하게 하기 위해 svn 이라고 별도의 디렉토리 생성후 생성한 디렉토리로 이동 합니다.


 


6. 저장소생성 (프로젝트 단위) 및 폴더 권한 수정


 

[root@localhost svn]# svnadmin create --fs-type fsfs 프로젝트명(디렉토리명)
[root@localhost svn]# chmod -R g+ws 프로젝트명(디렉토리명)


권한을 변경하지 않을 경우 root 이외에는 svn 명령어가 동작하지 않을수 있습니다.

 

 

 

7. 저장소 내에 svn 설정

 

 

[root@localhost svn]# vi 프로젝트명/conf/svnserve.conf


anon-access = none  //모든사용자접속(인증된 사용자만 접속)

auth-access = write  //작성가능여부

password-db = db  //인증설정파일

authz-db = authz  //권한설정파일

svnserve.conf 내에 설정을 위와 같이 변경해 줍니다.


 


8. svn 접속 아이디 만들기 (인증생성)


[root@localhost svn]# vi 프로젝트명/conf/passwd


[users]

아이디 = 패스워드


svn 이용할 아이디와 패스워드를 설정 합니다.


 


9. svn 접속 아이디 권한 설정


[root@localhost svn]# vi 프로젝트명/conf/authz


[/]

아이디 = rw  //읽기쓰기 보두 가능


권한 설정이 안되어 있을 경우 접속이 안됩니다.



10. svnserve 를 systemctl 에 등록


[root@localhost svn]# vi /etc/sysconfig/svnserve


OPTIONS="--threads --root /svn"


systemctl start svnserve 와 같이 svn 서버의 동작/멈춤을 위해서 등록합니다. 


 


11. svn 동작


[root@localhost svn]# systemctl start svnserve



12. 서버동작시 자동 실행 설정


[root@localhost svn]# systemctl enable svnserve.service


자동실행을 원치 않는다면 서버가 재부팅 또는 켤때마다 11번을 이용해 svn을 동작시켜 주세요.



13. 외부에서 svn 사용 가능하도록 방화벽 설정


[root@localhost svn]# vi /etc/firewalld/zones/public.xml


<port protocol="tcp" port="3690"/> //추가

</zone>



[root@localhost svn]# firewall-cmd --reload


</zone> 바로 위에 3690 포트 설정을 추가해주시고 방화벽을 재시작해주셔야 적용되요.


 


14. 주작업 컴퓨터와 svn을 연동

14-1. http://tortoisesvn.net/ 에서 프로그램을 다운로드 하여 설치합니다.

14-2. 원하는 위치에 폴더를 만들고 폴더 내에 반영하고자 하는 프로젝트(파일들)를 넣어 둡니다.

14-3. 폴더를 우클릭하여 SVN Checkout.. 을 클릭합니다.

14-4. URL of repository (저장소 URL) 을 입력하고 OK 합니다.



14-5. 인증하면 프로젝트(파일들)이 svn에 업로드 됩니다.



15. svn서버와 웹서버 연동

svn을 commit 할 경우 별도의 업데이트 없이 웹서버에 바로 적용 가능하도록 설정 합니다.



15-1. 상태

svn서버 : /svn/프로젝트명

웹서버 : /home/프로젝트명



15-2. svn서버와 웹서버 연결


[root@localhost svn]# svn checkout file:///svn/프로젝트명 /home/프로젝트명


최초 checkout 해서 연결을 만들어 줍니다.



15-3. Commit 시 자동 동작 설정 (post-commit)


[root@localhost svn]# vi 프로젝트명/hooks/post-commit


#!/bin/sh

export LANG=en_US.UTF-8

svn update /home/프로젝트명

chown -R 소유자:그룹명 /home/프로젝트명


export LANG = en_US,UTF-8 은 한글 파일명이 프로젝트 내에 있을 경우 작성하며, commit 될 경우 svn update 가 자동으로 동작 합니다.



15-4. post-commit 파일 권한 변경


[root@localhost svn]# chmod 777 post-commit


post-commit 이 권한에 구애 받지 않고 정상적으로 동작할수 있도록 권한을 777 로 변경합니다.



출처: http://blog.work6.kr/86 [워크식스 블로그]