* 이 문서는 제가 작업한 내용을 잊지 않기 위해 기록하는 것으로 자세히 설명되어 있지 않습니다. 도움이 필요하시다면 답글이나 email을 통해서 도와드리겠습니다.
Redmine은 프로젝트를 관리하는 웹 어플리케이션으로 유연하고 손쉬운 프로젝트 관리를 돕는 툴이다. 간트(gantt) 차트, 일정, wiki, 포럼, 다양한 역할 할당과 같은 기능들이 포함되어 있고 Subversion, Darcs, Mercurial, CVS, Bazzar, Git와 같은 다양한 소스 형상관리 툴을 지원한다.
설치 완료 후 화면

설치 구성

설치에 사용한 프로그램
MySQL(ver.5.0.18)
Redmine(ver.0.7)
BerkeleyDB(ver.4.3)
Subversion(ver.1.5.4)
1. BerkeleyDB 설치
저장소를 Berkeley-DB를 사용하지 않고 file로만 사용한다면 Berkeley-DB를 설치 하지 않아도 무관하다.
압축을 해제 후 build_unix 디렉토리로 이동한다.
../dist/configure
make
make install
echo "/usr/local/BerkeleyDB4.3/lib" >> /etc/ld.so.conf
ldconfig
2. apache 설치
http://www.apache.org 에서 아파치를 다운로드 할 수 있다.
make && make install
configure옵션은 자신이 필요한 모듈을 알아서 설정하도록 한다. 만일 wiki를 설치하고싶다면 php 모듈도 같이 설치 한다. 위의 구성에서 다음 모듈 rewrite, dav, proxy, ssl모듈은 반드시 설치하도록 한다.
Rewrite 모듈은 80포트로의 접속을 443으로 리다이렉트 할 때 사용하며 이외에도 유연한 기능을 지원한다.
dav 모듈은 SVN서버를 웹에서도 볼 수 있도록 지원하며 이 모듈이 없을 경우에는 http 프로토콜을 사용하여 SVN에 접속 할 수 없다.
proxy는 Redmine 서버를 로드밸런싱을 위해 사용한다.
ssl 모듈은 서버를 https 프로토콜을 사용하도록 설정하기 위함이다.
3. MySQL 설치
(생략)
4. Redmine 설치
Redmine은 Ruby on Rails로 작성되어 있는 웹 어플리케이션 프로그램이다. 즉 설치를 위해서는 Ruby와 Rails를 설치하여야 한다. 설치가 간단하니 웹 문서를 참조하여 설치를 한 후 다음으로 진행한다.
a. Redmine가 사용할 데이터 베이스를 생성한다. mysql에 root권한으로 접속한 후 아래의 명령어를 입력하여 데이터베이스를 생성한다.
create database redmine character set utf8;
b. config/database.yml.example 파일을 config/database.yml 파일로 복사 한 후 수정한다.
adapter: mysql <- mysql을 지정
database: redmine <- 사용할 데이터베이스 이름
host: localhost <- 데이터베이스의 위치
username: dbuser <- 사용자 ID
passwd: dbpasswd <- 사용자 PW
c. mysql 데이터베이스에 테이블들을 생성한다.
d. redmin의 초기 설정을 mysql데이터베이스에 입력한다.
e. redmine은 실행시에 redmine:redmine 권한으로 실행이 된다. files, log, tmp 폴더에 redmine:redmine 사용자가 읽고 쓸 수 있도록 권한을 부여한다.
chown -R redmine:redmine files log tmp
chmod -R 755 files log tmp
f. mongrel 설치 및 cluster 구성
mongrel 및 mongrel_cluster 설치
cluster 설정
port 8000 번 부터 3개(즉, 8000, 8001, 8002)를 사용하도록 하고 사용자와 그룹을 redmine로 설정한다.
cluster 시작
5. subversion 설치
make && make install
--with-apr, --with-apr-util, --with-apxs는 설치 된 아파치의 위치로 적절하게 잡아주고 berkeleyDb의 위치를 지정한다.
6. apache 설정
conf/httpd.conf 파일을 수정
[code]
Listen 80
Listen 443
Listen 8443
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://%{SERVER_NAME}:443/$1 [L,R]
</VirtualHost>
# redmine Server and Repository
<VirtualHost *:443>
ServerName svn.secuwiz.net
DocumentRoot /opt/redmine-0.7/public
<Directory "/opt/redmine-0.7/public">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Proxy balancer://redmine_cluster>
Order allow,deny
Allow from all
BalancerMember http://127.0.0.1:8000
BalancerMember http://127.0.0.1:8001
BalancerMember http://127.0.0.1:8002
</Proxy>
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule ^/(.*)$ balancer://redmine_cluster%{REQUEST_URI} [P,QSA,L]
RequestHeader set X_FORWARDED_PROTO 'https'
SSLEngine On
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile "conf/server.crt"
SSLCertificateKeyFile "conf/server.pem"
</VirtualHost>
<VirtualHost *:8443>
<Location /svn/sample>
DAV svn
SVNPath /opt/SvnRepo/sample
AuthType Basic
AuthName "Sample Repository"
AuthUserFile conf/.passwd
AuthGroupFile conf/.groups
Require group alluser <= alluser라는 그룹에게 공개
</Location>
<LocationMatch "/svn/sample/branches.*">
AuthType Basic
AuthName "Sample Repository"
AuthUserFile conf/.passwd
AuthGroupFile conf/.groups
Require user admin <= admin이라는 사용자에게 공개
</LocationMatch>
SSLEngine On
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile "conf/server.crt"
SSLCertificateKeyFile "conf/server.pem"
LogFormat "%t %u %h %l \"%r\" %>s %b" comonvhost
CustomLog "logs/svn_access_log" comonvhost
</VirtualHost>
[/code]
설정을 살펴보면 80포트에서는 들어오는 모든 요청을 Rewrite 모듈을 사용하여 443 포트로 리다이렉트 하고 있다.
443은 들어온 요청에 https 헤더를 붙이고 SSL 인증서와 키를 지정하여 암호화 하도록 하고 있다.
8443은 dav 모듈이 SVN을 사용하도록 하고 있고 Basic 인증을 사용하여 사용자 인증을 처리하고 있다. LocationMatch를 사용하여 사용자의 권한별 접근제한을 수행하고 있다.
사용자 생성과 그룹 생성, SSL 인증서 생성에 관한 것은 http://www.apache.org를 참고 하도록 하자.
위에 사용된 httpd.conf 파일은 예제일 뿐이다(즉, 실행되지 않는다.). 저 파일을 참고로 설치 시 기본으로 생성된 httpd.conf 파일을 수정하도록 하자
Posted by 느긋나긋

