분명히 몇달전만 해도 Trac은 2.0 및 2.2 버젼대의 Apache 웹서버와만 연동이 가능했습니다.
이번에 1.3버젼대에서 돌려야만 하는 상황이 와서 tracd로 standalone으로 실행하고 있었는데 오늘 보니깐 1.3에서도 연동이 가능한 방법이 있었군요! 정확히는 생겼군요!
mod_wsgi를 사용하면 매우 빠르면서도 Apache버젼을 타지 않고 Trac을 웹서버와 연동할 수 있습니다.
우선 이곳에서 소스를 다운 받으세요. 현재 2.0이 최신버젼입니다. [소스바로다운로드]
컴파일 하여 설치를 합니다.
[code][root@Theeye src]# ls
mod_wsgi-2.0.tar.gz
[root@Theeye src]# tar -zxvf mod_wsgi-2.0.tar.gz
[root@Theeye src]# cd mod_wsgi-2.0
[root@Theeye src]# ./configure –with-apxs=/usr/local/apache/bin/apxs –with-python=/usr/local/bin/python
[root@Theeye src]# make
[root@Theeye src]# make install[/code]
httpd.conf 에 다음의 내용을 추가합니다.
[code]LoadModule wsgi_module modules/mod_wsgi.so
AddModule mod_wsgi.c[/code]
Trac이 설치된 폴더로 이동하여 다음의 디렉토리를 생성합니다.
[code][root@Theeye trac]# mkdir apache
[root@Theeye trac]# mkdir eggs[/code]
db, eggs 디렉토리를 아파치 웹서버의 권한으로 변경합니다. (예 : 아파치가 nobody로 실행될 경우)
[code][root@Theeye trac]# chown -R nobody.nobody eggs db attatchment conf[/code]
apache 디렉토리 밑에 trac.wsgi를 만들고 안에 다음과 같은 내용을 적습니다.
[code]import os
os.environ[‘TRAC_ENV’] = ‘/env/trac’
os.environ[‘PYTHON_EGG_CACHE’] = ‘/env/trac/eggs’
import trac.web.main
application = trac.web.main.dispatch_request[/code]
보통 프레임워크에서 볼 수 있을법한 Dispatcher 스크립트 입니다.
이제 Apache에 설정을 추가하면 됩니다. httpd.conf파일이나 외부 파일에 설정하신 후 include하셔도 됩니다.
[code]<IfModule mod_wsgi.c>
WSGIScriptAlias /trac /env/trac/apache/trac.wsgi
<Directory /home/httpd/trac>
WSGIApplicationGroup %{GLOBAL}
Order allow,deny
Allow from all
</Directory>
<Location /trac/login>
AuthType Basic
AuthName “Star Team Area”
AuthUserFile /env/passwd
Require valid-user
</Location>
</IfModule>[/code]
이제 http://localhost/trac 으로 접속해 봅시다. 잘 되시나요? 하지만 확실히 크게 빠르다는 느낌은 받지 못했습니다. 그래도 좋네요^^
자세한 레퍼런스는 http://code.google.com/p/modwsgi/wiki/IntegrationWithTrac 을 참고하세요.