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 이외에는 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 [워크식스 블로그]
'리눅스 문서' 카테고리의 다른 글
[CentOS 6] python 2.7 설치 on CentOS 6 (4) | 2019.07.30 |
---|---|
mysql 8.x 초기설정 (4) | 2019.07.02 |
PS 어제날짜의 자세한시간까지 출력 (4) | 2018.10.16 |
QMAIL + SMTPD-AUTH + VPOPMAIL (4) | 2018.10.13 |
Permission denied for all sudo comands (4) | 2018.10.01 |