mail3/에스브이엔

아파치

psys 2020. 8. 26. 13:52
728x90

Apache2+SVN 서버구축 따라잡기

우분투 민트18 기준참고사항

upstart패키지 버그
위 링크의 upstart패키지 버그로 인해 버그 해결전까지는 다운그레이드를 시키지 않는한

$ dpkg -l | grep -i upstart ## 정확히 버그내용과 버젼이 일치함을 알 수 있디용.

우분투 민트18에서는 svn 서버를 initctl 명령어로는 짜증나게 서비스 등록을 할 수 없어서, 구닥다리
고래와 친구하던 시절의 방법을 써야 합니다.

그렇다면 이 기회에 오히려 한 발 더 내디뎌, 별로 어렵지도 않고,그리 낯설지도 않으며,시각적으로 느낌오는
아파치 웹서버와 연동시키는 구축방법을 알아두는 것이 도움이 되지 않을까 싶습네다.

먼저 Apache2 설치

## 뭔가 설정할 땐 맘잡기 위해 일단 괜히 업데이트
$ sudo apt update
## 아파치2 웹서버 & 유틸 설치
$ sudo apt install apache2 apache2-utils
## 아파치2 서버 시작
$ sudo service apache2 start

 

 i  브라우져 주소줄에 http://localhost 또는 http://콤퓨타ip 쳐서
아파치 시작페이지 보이면 잘하셨어요.^^\\
참고로 우분투에서 아파치 홈디렉토리는 /var/www/html입니다

Subversion 설치

## 서브버젼및 아파치와 연결시킬 라이브러리 설치, 초간단
$ sudo apt install subversion subversion-tools libapache2-mod-svn
$ svn --version

Subversion 설정

## 임의로 /home 디렉토리 아래 svn 폴더 생성
$ sudo mkdir /home/svn
## /home/svn 아래 teamproj라는 저장소(repository)생성
$ sudo svnadmin create /home/svn/teamproj
## 아파치 웹서버가 폴더에 접근가능토록 소유자/그룹 변경
$ sudo chown -R www-data:www-data /home/svn/teamproj

 i  우분투에서는 아파치 웹서버 설치후 만들어진 디렉토리는 기본적으로
www-data라는 사용자와 www-data라는 그룹의 소유로 되어 있습니다.
/etc/apache2/envvars 파일내용에서 RUN_USER/GROUP이 확인,변경가능하디용 위 /home/svn 이나 /home/svn/teamproj는 입맛에 맞는
경로와 이름으로 정하셔도 무상관입니다.

 

즐겨 사용하시는 에디터를 이용하여
/etc/apache2/mods-enabled/dav_svn.conf를 아래 내용으로 만듭니다.
SVNParentPath /home/svn 라인의 경로 설정에 주의하세요

<Location /svn> 
DAV svn 
SVNParentPath /home/svn 
AuthType Basic 
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd 
Require valid-user
 </Location>

 

아래는 아파치와 svn연결을 위한 모듈을 활성화하는 명령어인데
모듈 설치시에 이미 자동으로 활성화되어, 꼭 필요하진 않지만 그냥 저냥..

$ sudo a2enmod dav_svn

이제 test라는 유저를 만들고 암호를 할당해 보겠습니다.
필요한 만큼 유저와 암호를 만들면 되겠습니다.

## 암호를 물어오면 원하는 암호를 지정해줍니다.
## 유저를 여러명 추가하는 경우, 2번째 부터는 -cm이 아니고 -m 옵션 사용합니다.
## -c 옵션은 새파일을 만들라는 옵션이고, -m은 암호를 알아보기 어렵게(md5) 암호화하라는 옵션입니다.
## 계속 -cm 옵션을 추가하면 덮어써져서 마지막 추가한 사용자만 남디용.!!
$ sudo htpasswd -cm /etc/apache2/dav_svn.passwd test
## 아파치 서버를 재기동 시킵니다.
$ sudo service apache2 restart

Apache와 Subversion 연동확인

 i  브라우져 주소줄에 http://localhost/svn/teamproj 또는
http://콤퓨타ip/svn/teamproj 치면
유저명과 암호를 물어보고, 위에서 지정한 test/암호 를 입력했을 때
화면에 teamproj - Revision 0:/ 라고 보이면 수고하셨습니다.
만약 안보이면, 눈에 불을켜고,빼먹거나 오타를 찾습니다.^^

Subversion 서버 동작확인

이제 마지막으로 svn 서버가 제대로 동작하는지 확인해 보아요

## 홈디렉토리에 테스트를 위한 제 맘대로 svntest 란 폴더를 만듭니다.
$ cd ## 홈으로 이동
$ mkdir svntest ## 디렉토리 생성
## svn checkout 암것도 없으니 checked out revision 0가 나올겁니다
$ svn checkout http://ip/svn/teamproj --username test svntest/
## svntest 폴더로 가서 파일을 만들어 보아요
$ cd svntest
$ echo "This is first file" > sourcefile1.txt
$ echo "This is second file" > sourcefile2.txt
## 위에서 생성한 파일을 commit 준비를 위해 add 시킵니다
$ svn add source*.txt
## 출력을 확인한 뒤에 commit을 합니다.
$ svn commit -m "This is Revision 1"
## 출력을 확인하세요~ Committed revision 1.

 i  이제 다시 브라우져 주소줄에 http://localhost/svn/teamproj 또는
http://콤퓨타ip/svn/teamproj 쳐서
sourcefile1.txt 와 sourcefile2.txt가 보인다면
대단히 수고 하셨습니다.

정리

 ?  svn 데몬을 이용하는 것과의 차이점은, svn 서버동작이
아파치 웹서버를 경유해서 이루어지므로,svn 서버 서비스 등록이 필요없으며
svn 프로토콜 대신 범용적인 http 프로토콜을 사용할 수 있고(이클립스에서도 svn: 대신에 http:사용),
저장소 내용을 웹서버를 통해 바로 확인가능합니다. 저장소로 사용하는 폴더의 사용자/그룹에 주의하시면, svn서버 사용은 크게 문제 없어 보입니다.

'mail3 > 에스브이엔' 카테고리의 다른 글

트러블  (0) 2020.08.26
연습  (0) 2020.08.26