install trac with mod_wsgi

Trac을 사용하기 위해 인스톨 할때는 보통 mod_python 방법을 사용하곤 했는데, mod_python 프로젝트가 중단되고, Trac에서는 mod_python방법을 권하지 않는다.

그래서 mod_wsgi 방식을 알아봤는데 예상외로 간편한 셋팅이다.

case : ubuntu

참조링크 : http://robertbasic.com/blog/trac-on-ubuntu/

sudo apt-get install libapache2-mod-wsgi python-setuptools libsqlite3-dev python-subversion
sudo easy_install Trac
cd /var/www/xxx/
sudo mkdir trac trac/sites trac/eggs trac/apache
sudo vi trac/apache/trac.wsgi

import sys
sys.stdout = sys.stderr

import os
os.environ['TRAC_ENV_PARENT_DIR'] = '/var/www/xxx/trac/sites'
os.environ['PYTHON_EGG_CACHE'] = '/var/www/xxx/trac/eggs'

import trac.web.main

application = trac.web.main.dispatch_request

sudo chown -R www-data.www-data trac

xxx 는 도메인 혹인 웹루트, 아파치 가상호스트 설정파일을 수정해주면 간단하게 구동가능

sudo vi /etc/apache2/sites-available/xxx

WSGIScriptAlias / /var/www/xxx/trac/apache/trac.wsgi
<Directory /var/www/xxx/trac/apache>
    WSGIApplicationGroup %{GLOBAL}
    Order deny,allow
    Allow from all
</Directory>

아파치를 리스타팅 하면 Available Projects 라고 나오면 일단 완료.

이제 프로젝트를 추가해준다

sudo trac-admin /var/www/xxx/sites/project_name initenv
sudo chown -R www-data.www-data /var/www/xxx/sites/project_name

인증을 위해 다음 부분을 첨가해준다.

sudo vi /etc/apache2/sites-available/xxx

<Location /*/login>
    AuthType Basic
    AuthName "Trac login"
    AuthUserFile /var/www/xxx/trac/.htpasswd
    Require valid-user
</Location>

sudo htpasswd -bcm /var/www/xxx/trac/.htpasswd user_id user_password
sudo trac-admin /var/www/xxx/trac/sites/project_name add user_id TRAC_ADMIN

Trac Account Manage Plugin : http://trac-hacks.org/wiki/AccountManagerPlugin

sudo easy_install https://trac-hacks.org/svn/accountmanagerplugin/trunk
sudo vi trac/sites/project/conf/trac.ini
[components]
trac.web.auth.LoginModule = disabled
acct_mgr.web_ui.LoginModule = enabled
acct_mgr.web_ui.RegistrationModule = disabled

[account-manager]
password_file = /var/www/xxx/trac/.htpasswd
password_store = HtPasswdStore

trac.ini의 수정사항들은 웹서버를 재시작 시켜야만 작동된다.

글쓴이

yupmin

Inside Deep Throat.

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

This site uses Akismet to reduce spam. Learn how your comment data is processed.