[OS]/Embedded&Linux

[INSTALL] 나도 Trac을 써보자! Apache-2.2.2/SVN-1.3.1/Trac-0.9.5/FastCGI (5)- Trac 설치 및 연동

하늘을닮은호수M 2007. 4. 10. 13:42
반응형

출처 : http://classpath.egloos.com/2029948

이 글에 있는 내용.

- 5. Trac 의 설치 및 설정
- 6. Apache 용 Fast CGI 모듈 설치
- 7. Trac 과 Apache 의 연동

5. Trac 의 설치.
(1) 설치
Trac 은... 그냥 emerge 로 설치했다. apache, subversion 을 설치하고도 몇 가지가 더 필요하다. 그래서 그냥 깔끔하게 emerge trac 해버렸다. 다른 배포판에서도 패키지 관리자가 있으니깐, 문제없이 할 수 있을 거라 생각된다...다...다.. (죄송.. -_-aa)

trac 의 수동 설치는 그다지 어려운 것은 없어보인다. 관련 패키지들이 사전에 잘 설치되어 있다면...

python ./setup.py install

한문장이면 끝이다. 고급 사용자라면

python ./setup.py install --help

해서 출력되는 내용을 보고 하면 된단다..

(2) 설정 및 trac 환경 생성

설정할 것은 따로 없고, trac 환경만 구축하면 된다.

trac-admin /data/www/localhost/trac/newface initenv

설치 중 물어보는 질문은 대부분 어렵지 않고 subversion 의 리퍼지터리 경로만 절대 경로로 입력해 주면된다.
앞서 포스트 했던 글에선 /data/svn/newface 에 생성했으므로 그 경로를 입력한다.

tracd --port 8000 /data/www/localhost/trac/newface

으로 자체 데몬을 실행 시킨 후 web browser 로 http://localhost:8000 으로 접속해보자. 잘 나온다면 일단 OK!

cp /usr/share/webapps/trac/0.9.5/hostroot/cgi-bin/* /data/www/localhost/cgi-bin/

해주자. (링크를 걸어도 된다.) 복사되는 파일은 trac.cgi, trac.fcgi 파일이다.

6. Apache 용 Fast CGI 모듈 설치
Trac 을 Apache 와 연동이 가능하게 해주는 방법은 세가지가 있다.
첫 째. CGI
둘 째. python 모듈
셋 째. Fast CGI
기본적으로 다른 설치가 없이 연동이 가능한 방법은 CGI 이다. 하지만, 성능은 그닥 좋지 않다. 뭐 혼자쓴다면 상관없다. ^^
성능상의 이점을 가지는 것이 Python 모듈을 사용하거나, Fast CGI 모듈을 이용하는 것이다. 그런데 뭐가 문제 였는지 Apache 2.2.2 에서 mod_python 의 최신버전이 잘 작동하지 않았다(Trac 처음 화면은 나왔는데, 소스 browser나 Ticket View 같은 화면에서 에러가 발생) 따라서, 여기에선 Fast CGI 를 이용하여 진행할 것이다.

(1) 소스 다운로드
FastCGI 모듈의 최신버전은 2004년 4월 14일 버전이다. -_-;; 그만큼 버전업이 필요 없었나보다.

wget http://fastcgi.com/dist/mod_fastcgi-SNAP-0404142202.tar.gz
tar xvfz mod_fastcgi-SNAP-0404142202.tar.gz
cd mod_fastcgi-SNAP-0404142202

(2) 패치 적용
다운로드 받은 Fast CGI 모듈은 Apache 2.2 (apr-1.x) 와의 연동 작업이 안되어 있다. 다음의 두 패치를 적용한다.
Makefile.AP2.patch
fcgi.h.patch

* 위의 두 파일을 압축을 해제한 디렉터리로 내려 받고 pacth <원파일> <패치파일> 을 수행한다.

(3) 컴파일 및 설치
Makefile.AP2 란 파일을 Makefile 이란 이름으로 복사한다. Makefile 파일을 열어서 아래의 부분을 자신에 맞게 변경해 준다.
top_srcdir=/usr/lib/apache2
top_builddir=/usr/lib/apache2
APXS=apxs2
APACHECTL=apache2ctl

make
make install

(4) 적용
/etc/conf.d/apache2 파일에 있는 APACHE_OPTS 에 -D FASTCGI 를 추가해준다.
/etc/apache/modules.d/20_mod_fastcgi.conf 파일을 생성하고 다음의 경로를 지정해 준다.



LoadModule fastcgi_module modules/mod_fastcgi.so


AddHandler fastcgi-script .fcgi
FastCgiServer /data/www/localhost/cgi-bin/trac.fcgi -idle-timeout 120 -initial-env TRAC_ENV_PARENT_DIR=/data/www/localhost/trac -processes 5



* FastCgiServer 에 지정한 경로는 나중에 Trac 설치 후 fast cgi 스크립트의 위치이다.
* TRAC_ENV_PARENT_DIR 는 여러 Trac 프로젝트를 운영할 경우 그 프로젝트들의 상위 디렉터리를 가르킨다. 하나의 프로젝트만 운영한다면 TRAC_ENV 라 지정하고 해당 trac 환경 경로를 지정해 주면 된다.

/etc/apache2/conf/httpd.conf 파일에 다음의 내용을 추가한다.

# FastCGI
include /etc/apache2/modules.d/20_mod_fastcgi.conf

ScriptAlias /trac /data/www/localhost/cgi-bin/trac.fcgi

위의 설정은 다중 프로젝트 운영을 위해 설정한 것이다. 모든 trac 프로젝트는 http://localhost/trac/ 형태로 접근 가능해진다. ex) http://localhost/trac/newface cf) svn://localhost/svn/newface

그런데 http://localhost/newface, http://localhost/newface2 와 같이 하고 싶은 경우도 발생할 수 있다. 그럴때는 위의 ScriptAlias 부분을 아래와 같이 변경하면 된다.

ScriptAlias /newface /data/www/localhost/cgi-bin/trac.fcgi/newface
ScriptAlias /newface2 /data/www/localhost/cgi-bin/trac.fcgi/newface2

위키등의 데이터는 먼저 생성한 trac 환경안에 존재하는 파일(DB 데이터 파일이다)에 기록하게 된다. 따라서 apache 사용자가 환경안의 파일을 수정할 수 있도록 권한을 주어야 한다.

chown -R apache /data/www/localhost/trac/newface

이제 아파치를 재기동하고 접속해 보자. 데몬으로 띄웠을 때와 똑같이 나온다면 OK! 몇가지 기능도 눌러보자.
반응형