[참조 : 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 접근이 가능해 진다.
'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 |