ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • svn 설치 및 웹서버 연동 (centos7 환경)
    프로그래밍팁/linux 2015.10.02 14:22

    svn을 통해서 웹서버를 버전관리 할 경우 커스터마이징시 매우 쓸모 있어요.

    따라서 svn 설치 및 svn서버와 웹서버간의 연동을 다뤄볼게요.





    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/프로젝트명

    chwon -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 로 변경합니다.


















    TAG

    댓글 0

work6.kr