
Attualmente (Settembre 2009), Trac puo' essere utilizzato in 2 modi:
tramite l'istallazione di sistema (versione 0.10.4 di ubuntu hardy) in modalita' CGI
tramite uWSGI istallando la versione che si preferisce
La prima modalita' e' deprecata e il suo howto si puo' ancora trovare qui
I requisiti minimi sono almeno un processo da 64MB libero
uWSGI permette di caricare dinamicamente gli egg da qualsiasi directory, inizieremo quindi con lo scaricare i 2 egg necessari, Trac e Genshi (il suo sistema di templating)
Gli egg di trac possono essere scaricati da qui:
http://pypi.python.org/pypi/Trac
mentre quelli di Genshi sono disponibili sul sito ufficiale:
http://genshi.edgewall.org/wiki/Download
Uno dei problemi di Trac in ambienti dove non si dispone di accesso ssh e' che per creare una istanza e' necessario lanciare il comando trac-admin. Nel corso degli anni abbiamo fornito varie soluzioni (tra cui un plugin per la Console), ma di sicuro l'approccio migliore e' sfruttare l'ambiente WSGI e rendere completamente dinamiche le istallazioni.
Lo script wsgi sara' quindi modificato per verificare in fase di avvio che l'istanza richiesta sia gia' configurata, e in caso negativo la inizializza con dei valori di default.
Lo script wsgi e' il seguente (chiamatelo trac_wsgi.py, siete liberi di modificarlo come ritenete opportuno)
import os
import trac.web.main
trac_project = '/www/mytrac/project'
os.environ['TRAC_ENV'] = os.environ['HOME'] + trac_project
if not os.path.exists(os.environ['TRAC_ENV'] + '/VERSION' ):
from trac.admin import console
tc = console.TracAdmin()
tc.envname = os.environ['TRAC_ENV']
tc.do_initenv("'Unnamed Project' 'sqlite:db/trac.db' '' ''")
application = trac.web.main.dispatch_requeste' sufficiente modificare la variabile trac_projects per aggiungere nuovi progetti
Dal pannello di controllo accedete alle opzioni del dominio su cui volete istallare trac. Abilitate il flag wsgi e specificate il nome dello script wsgi (senza estensione .py) nel campo wsgi_scriptname
Ora dobbiamo specificare quali egg caricare all'avvio. Nel campo wsgi_pythonpath elenchiamo (uno per linea) i path (relativi alla home) degli egg scaricati. Ex:
/www/mytrac/Genshi-0.5.1-py2.5-linux-i686.egg /www/mytrac/Trac-0.11.4-py2.5.egg
Salvate le impostazioni, attendete 30 secondi e la vostra istanza di Trac sara' avviata al primo accesso del browser.
E' facile che abbiate la necessita' di avere trac in una uri diversa dalla radice (ex. /trac).
In tal caso cancellate il campo wsgi_scriptname e impostate il parametro wsgi_mountpoints in questo modo
/trac trac_wsgi
Ovviamente, in caso di modifiche ai moduli o alla configurazione di trac e' necessario riavviare uWSGI. Nel pannello di controllo accedete alla sezione Processi e inviate il segnale di TERM (o KILL) al processo (o ai processi) di Trac.
Tenete sempre d'occhio anche il file stderr_log nella vostra home. Vi vengono loggate tutte le informazioni di uWSGI compreso l'output della generazione delle istanze di trac.
Se ricevete degli errori il file stderr_log e' il primo posto dove guardare.
HowtoTrac (l'ultima modifica รจ del 2009-11-16 15:25:56, fatta da RobertoDeIoris)