2019. 4. 23. 16:12

[참조 : http://blog.naver.com/phrack/80193351514 ]

Bitnami Redmine 내에는 svn과 apach가 함께 동작한다.

이를 연계하여 사용하는 방법이다. 대부분 위의 사이트 내용이고, 몇가지 오류내용을 수정했다.

---------------------------------------------------------------------

SSH로 접속한 후, 아래와 같이 Repositories 디렉토리를 생성하고 

bitnami user와 group에게 오너십을 부여한 후, 

svnadmin 명령으로 repository를 생성한다. (이름은 codelabor 로 정의함)

bitnami@ip-xxx-xxx-xxx-xxx:/opt/bitnami$ sudo mkdir repositories

bitnami@ip-xxx-xxx-xxx-xxx:/opt/bitnami$ sudo chown -R bitnami:bitnami repositories

bitnami@ip-xxx-xxx-xxx-xxx:/opt/bitnami$ svnadmin create repositories/codelabor

bitnami@ip-xxx-xxx-xxx-xxx:/opt/bitnami$ ls

apache2        git                    perl            ruby        use_redmine

apps           img                    php             scripts     var

changelog.txt  licenses               properties.ini  sqlite

common         manager-linux-x64.run  README.txt      stats

ctlscript.sh   mysql                  repositories    subversion

 

성된  repository 안을 살펴보면 Subversion Repository가 갖춰야할 

파일 구조로 구성된 것을 알 수 있다.

 

bitnami@ip-xxx-xxx-xxx-xxx:/opt/bitnami/repositories/codelabor$ ls -al

total 32

drwxrwxr-x 6 bitnami bitnami 4096 Jul  4 15:35 .

drwxr-xr-x 3 bitnami bitnami 4096 Jul  4 15:35 ..

drwxrwxr-x 2 bitnami bitnami 4096 Jul  4 15:35 conf

drwxrwsr-x 6 bitnami bitnami 4096 Jul  4 15:35 db

-r--r--r-- 1 bitnami bitnami    2 Jul  4 15:35 format

drwxrwxr-x 2 bitnami bitnami 4096 Jul  4 15:35 hooks

drwxrwxr-x 2 bitnami bitnami 4096 Jul  4 15:35 locks

-rw-rw-r-- 1 bitnami bitnami  229 Jul  4 15:35 README.txt

 

 

 

생성된 Repository에 접근하는 방법으로 http, https를 사용하기 위해 

Apache 와 Subversion을 연동한다.

/opt/bitnami/apache2/conf/httpd.conf 파일에서 아래 내용이 활성화 되었는지 확인한다.

 ...

LoadModule dav_module modules/mod_dav.so

...

LoadModule dav_fs_module modules/mod_dav_fs.so

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so

 

참고로 위 module 파일은 이미 modules 디렉토리에 포함되어 있다.

bitnami@ip-xxx-xxx-xxx-xxx:/opt/bitnami/apache2/modules$ ls 

mod_authz_svn.so     mod_dav_svn.so      mod_dav_fs.so     mod_dav.so  ....

 

Subversion Repository에 접근하기 위한 Apache 설정을 

/opt/bitnami/apache2/conf/httpd.conf 파일에 넣어도 무방하긴 하나

httpd.conf 파일과는 분리된 httpd-subversion.conf 파일을 만들고 이를 Include 하도록 한다.

/opt/bitnami/apache2/conf/httpd.conf 파일에서 아래 내용이 추가되도록 설정한다.

 Include "/opt/bitnami/apache2/conf/extra/httpd-subversion.conf"

 

그리고 실제로 해당 경로에 httpd-subversion.conf 파일을 생성하고 

아래와 같이 편집한다.

 <Location /svn/codelabor>

        DAV svn

        SVNPath /opt/bitnami/repositories/codelabor

</Location>

 

우선은 권한 제어는 하지 않고 http, https로 접근이 되는지만 확인한다.

수정된 내용들을 반영하기 위해 subversion과 apache를 재구동 한다.

bitnami@ip-xxx-xxx-xxx-xxx:/opt/bitnami$ ./ctlscript.sh restart subversion

This script requires root privileges

bitnami@ip-xxx-xxx-xxx-xxx:/opt/bitnami$ sudo ./ctlscript.sh restart subversion

/opt/bitnami/subversion/scripts/ctl.sh : subversion stopped

/opt/bitnami/subversion/scripts/ctl.sh : subversion started at port 3690

bitnami@ip-xxx-xxx-xxx-xxx:/opt/bitnami$ sudo ./ctlscript.sh restart apache

Syntax OK

/opt/bitnami/apache2/scripts/ctl.sh : httpd stopped

Syntax OK

/opt/bitnami/apache2/scripts/ctl.sh : httpd started at port 80

 

이제 http, https로 접근이 가능한지 확인한다.

이 때 https는 인증서가 Self-signed 된 사설 인증서라 오류가 나는 것이 정상이다.

 

 

접속이 정상인 것을 확인하였으니 

이제 해당 Repository 에 접근할 수 있는 사용자를 등록하고 권한을 설정한다.

접근 채널이 Apache를 경유하므로 간단히 Apache의 사용자로 등록한다.

참고로 Apache 사용자 정보는 아래 경로에 등록되며, 

sudo /opt/bitnami/apache2/bin/htpasswd -c /opt/bitnami/repositories/users (추가할 계정명)

bitnami@ip-xxx-xxx-xxx-xxx:/opt/bitnami$ sudo /opt/bitnami/apache2/bin/htpasswd -c /opt/bitnami/repositories/users bomber

New password:

Re-type new password:

Adding password for user bomber

 

위와 같이 사용자를 등록한 후, /opt/bitnami/apache2/users 파일을 살펴보면 

아래와 같이 사용자가 등록된 것을 확인할 수 있다.

 더 많은 사용자 추가를 위해서는 -c 옵션을 빼고 아래처럼 입력한다.

sudo /opt/bitnami/apache2/bin/htpasswd /opt/bitnami/repositories/users [추가할 다른 계정]

 

 

이제 추가된 Apache 사용자를 Subversion Repository에 접근 가능하도록 설정한다.

/opt/bitnami/apache2/conf/extra/httpd-subversion.conf 파일을 아래와 같이 편집한다.

 <Location /svn/codelabor>

        DAV svn

        SVNPath /opt/bitnami/repositories/codelabor

 

        AuthType Basic

        AuthName "CODELABOR Repository"

 

        AuthUserFile "/opt/repositories/apache2/users"

        Require valid-user

        AuthzSVNAccessFile "/opt/bitnami/repositories/codelabor/authz"

</Location>

 

요컨데 Apache 사용자 파일에 등록된 사용자 정보를 활용하고 

codelabor repository 안의 authz 파일을 참고하여 접근 제어를 하겠다는 의미이다.

 

아직 /opt/bitnami/repositories/codelabor/authz 파일은 생성되지 않았으므로

파일을 생성하고 아래와 같이 편집한다.

[groups]

developer = bomber

[/]

developer = rw

 

 

Apache, Subversion 설정 파일 모두 수정이 되었으니 각각을 재구동한다.

bitnami@ip-xxx-xxx-xxx-xxx:/opt/bitnami$ ./ctlscript.sh restart subversion

This script requires root privileges

bitnami@ip-xxx-xxx-xxx-xxx:/opt/bitnami$ sudo ./ctlscript.sh restart subversion

/opt/bitnami/subversion/scripts/ctl.sh : subversion stopped

/opt/bitnami/subversion/scripts/ctl.sh : subversion started at port 3690

bitnami@ip-xxx-xxx-xxx-xxx:/opt/bitnami$ sudo ./ctlscript.sh restart apache

Syntax OK

/opt/bitnami/apache2/scripts/ctl.sh : httpd stopped

Syntax OK

/opt/bitnami/apache2/scripts/ctl.sh : httpd started at port 80

 

재구동하였다면 http, https 접속 테스트를 해본다.

 

앞서 Basic 방식으로 인증토록 하였기 때문에 위와 같은 로그인 창이 뜨고

정상적으로 인증된 경우, 아래와 같이 Repository 접근이 가능해 진다.

 

 

[출처] [Bitnami] Subversion Repository 구성하기 - AWS|작성자 밤바

'OS > 리눅스' 카테고리의 다른 글

[SVN] trunk, tags, branches의 용도  (0) 2019.04.24
[SVN] project 추가 방법  (0) 2019.04.23
[CentOS7] ip 확인 방법  (0) 2018.07.24
[리눅스] 기본 명령어  (0) 2018.07.23
리눅스 공부 동영상 좋은곳  (0) 2018.07.23
Posted by 까망후니