HowTo/Trac with PostgreSQL and Subversion
In questo documento presento gli appunti che ho salvato durante l'installazione di Trac su dbms PostgreSQL e connessione con repository Subversion
Riferimenti
Ho effettuato l'installazione su un sistema Debian GNU/Linux seguendo la guida disponibile sulla pagina
http://trac.edgewall.org/wiki/TracInstall
per i passaggi che servivano. Se nel seguito qualcosa non è immediatamente chiaro, sulla guida trovate la risposta.
Istruzioni eseguite
Installazione dei package necessari
apt-get install python-docutils python-pygments postgresql python-psycopg2 apache2 libapache2-mod-wsgi libapache2-mod-auth-pam easy_install babel easy_install pytz apt-get install trac
Configurazione di PostgreSQL
Nel seguito faccio riferimento a PostgreSQL 8.4: se notate differenze utilizzando PostgreSQL 9 per cortesia segnalatelo, grazie :-)
su - postgres createuser -P trac # creo l'utente Pg trac inserendo una nuova password createdb -O trac trac-xyz # '-O trac' attribuisce all'utente Pg trac la proprietà del database
Bisogna quindi modificare /etc/postgresql/8.4/main/pg_hba.conf per consentire l'accesso tramite password (md5) e ricaricare la configurazione di PostgreSQL con
/etc/init.d/postgresql reload
Inizializzazione del repository Trac per il progetto "Ics Ypsilon Zeta"
mkdir /var/lib/trac trac-admin /var/lib/trac/xyz initenv Creating a new Trac environment at /var/lib/trac/xyz [...] Project Name [My Project]> Progetto Ics Ypsilon Zeta [...] Database connection string [sqlite:db/trac.db]> postgres://trac:XXXXXXXX@/trac-xyz # XXXXXXXX è la password dell'utente ''trac'' [...] Repository type [svn]> [RETURN] [...] Path to repository [/path/to/repos]> /var/lib/svn/xyz [...] Project environment for 'Progetto Ics Ypsilon Zeta' created. You may now configure the environment by editing the file: /var/lib/trac/xyz/conf/trac.ini If you'd like to take this new project environment for a test drive, try running the Trac standalone web server `tracd`: tracd --port 8000 /var/lib/trac/xyz Then point your browser to http://localhost:8000/xyz. There you can also browse the documentation for your installed version of Trac, including information on further setup (such as deploying Trac to a real web server). The latest documentation can also always be found on the project website: http://trac.edgewall.org/ Congratulations!
Configurazione del web server
Trac è corredato di un web server minimale, tracd, ma per maggiore flessibilità usiamo Apache, con mod_wsgi (consigliato).
La configurazione di Apache esula dallo scopo di questi appunti pertanto assumo che lo abbiate già installato come preferite.
E' necessario attribuire all'utente dei processi di Apache i diritti di scrittura sul repository Trac:
chown -R www-data: /var/lib/trac/xyz
Creazione dei directory htdocs e cgi-bin:
trac-admin /var/lib/trac/xyz deploy /tmp/deploy mv /tmp/deploy/* /var/lib/trac/
Creiamo il directory cache per gli egg:
mkdir /var/lib/trac/eggs
e ne informiamo Apache impostando la variabile d'ambiente corrispondente PYTHON_EGG_CACHE.
Accesso a Trac
L'argomento autenticazione è vasto e le scelte dipendono dai sistemi che preferite utilizzare, in dipendenza dalle vostre esigenze di sicurezza, pertanto non considero qui l'argomento dal punto di vista di Apache e mi limito a considerare le opzioni di accesso per Trac.
Sulla console di Trac togliamo all'utente anonimo tutti i permessi e assegnamo ai nostri utenti i permessi necessari:
trac-admin /var/lib/trac/xyz Trac [/var/lib/trac/xyz]> permission remove anonymous BROWSER_VIEW CHANGESET_VIEW FILE_VIEW LOG_VIEW MILESTONE_VIEW \ REPORT_SQL_VIEW REPORT_VIEW ROADMAP_VIEW SEARCH_VIEW TICKET_VIEW TIMELINE_VIEW WIKI_VIEW Trac [/var/lib/trac/xyz]> permission add andrea all