분명히 몇달전만 해도 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 을 참고하세요.

Task Repositories 윈도우를 추가합니다. 오른쪽 버튼을 클릭하고 Add Task Repositories를 선택합니다.
Trac을 선택합니다.
자신의 트랙 접속 주소와 로그인 계정 정보를 입력하고 Validate Settings를 클릭합니다. 연결에 문제가 없으면 Finish 버튼이 활성화 됩니다.
곧바로 Query를 작성하는 창이 뜹니다. Query Title에 대충 All이라고 적고 Finish를 선택하겠습니다. 아무것도 선택된것이 없으므로 조건이 없는것이고 조건이 없다는것은 전체를 가져오겠다는 의미를 갖습니다.
도착한 Task의 목록이 나오는군요. 더블클릭을 하면 해당 Task의 상세 정보가 나옵니다. 문제를 해결했다면 코멘트를 달고 바로 Resolve할 수 있습니다.