Bookmark and Share
Document Actions

Trac: installazione e configurazione
medio

Installazione di Trac semplice e veloce

Installazione

Trac deve essere installato sullo stesso server dove è presente subversion (o almeno deve riuscire a vedere la directory /home/subversion).

Per la memorizzazione delle pagine utilizza sqlite di default ma può anche usare mysql o posgresgl.

Trac è basato su Python 2.5 quindi bisogna assicurarsi di averlo installato.

Per prima cosa installiamo il pacchetto per interfacciare Python con subversion:

sudo apt-get install python-subversion

Per l'installazione utilizzeremo easy_install. E' un sistema di installazione multipiattaforma per moduli python.

Installiamo quindi easy_install:

wget peak.telecommunity.com/dist/ez_setup.py

python2.5 ez_setup.py

Installiamo Trac e Pygments (libreria per la colorazione della sintassi):

easy_install Trac

easy_install Pygments

 

Configurazione

Per creare un nuovo progetto Trac eseguiamo:

trac-admin /percorso/progetto initenv

Con questo comando ci verranno richieste alcune domande:

  • Nome del progetto - digitiamo il nome del nostro progetto
  • Stringa di connessione al db - si può lasciare quella di default
  • Tipo di repository - usiamo il default (SVN)
  • path del repository - la directory del nostro repository subversion (si può mettere anche un ramo del repository). Nel nostro esempio scriviamo /home/subversion/myproject

A questo punto lanciando

tracd --port 8000 /percorso/progetto

verrà lanciato il web server di Trac che sarà visibile su http://nomepc:8000

NOTA BENE: tracd può essere configurato per utilizzare uno o più progetti differenti. Guardate le opzioni su http://trac.edgewall.org/wiki/TracStandalone

Configurare l'autenticazione

Trac può essere configurato per utilizzare le stesse utenze caricate per subversion. Basta lanciarlo con:

tracd --port 8000 /percorso/progetto --basic-auth=myproject,/etc/subversion/passwd,myproject

In questo caso abbiamo utilizzato l'autenticazione basic ma è possibile utilizzare anche l'autenticazione digest.

Per configurare i permessi è conveniente promuovere uno degli utenti ad amministratore con

trac-admin /percorso/progetto permission add nomeutente TRAC_ADMIN

Facendo log-in con questo utente sarà presente un bottone "admin" con il quale si avrà accesso alla configurazione dei permessi delle altre utenze.

Configurare il trac.ini

All'interno del progetto, nella directory conf si trova il file trac.ini. Al suo interno ci sono moltissime opzioni relative al progetto. Il reference si trova qui.

Far partire trac all'avvio

Per far partire trac si può usare questo comodo script di avvio trovato qui. Basta scrivere questo script su /etc/init.d/trac

#!/bin/sh
### BEGIN INIT INFO
# Provides:          tracd
# Required-Start:    networking
# Required-Stop:     networking
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start the tracd standalone Trac web server.
### END INIT INFO
# (C) 2008 Guy Rutenberg <http://www.guyrutenberg.com>
## Options you should probably change ##

HOSTNAME=127.0.0.1 # to which hostname should we listen
# If you only want to serve one project keep this variable
# empty and set the PROJECT_ENV variable 

ENV_PARENT_DIR=/home/guyru/trac.guyrutenberg.com
PROJECT_ENV=
PORT=8000

# add any additional options (such as authentication) here. If you only have one
# project you should probably add -s here

ADDITIONAL_OPTS=--basic-auth=myproject,/etc/subversion/passwd,myproject

## Options you should probably not change ##

DAEMON=/usr/bin/tracd
NAME=tracd
DESC="web server"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
SSD="/sbin/start-stop-daemon"

test -x $DAEMON || exit 1

set -e

. /lib/lsb/init-functions

DAEMON_OPTS="--daemonize --pidfile=$PIDFILE --port=$PORT --hostname=$HOSTNAME $ADDITIONAL_OPTS"

if [ -n "$ENV_PARENT_DIR" ]; then
    DAEMON_OPTS="$DAEMON_OPTS --env-parent-dir=$ENV_PARENT_DIR"
else
    DAEMON_OPTS="$DAEMON_OPTS $PROJECT_ENV"
fi


case "$1" in
  start)
    log_daemon_msg "Starting $DESC" $NAME
    if ! $SSD --start --quiet\
    --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_OPTS ; then
            log_end_msg 1
    else
            log_end_msg 0
    fi
    ;;

  stop)
    log_daemon_msg "Stopping $DESC" $NAME
    if $SSD --stop --retry 30\
    --pidfile $PIDFILE ; then
        rm -f $PIDFILE
        log_end_msg 0
    else
        log_end_msg 1
    fi
    ;;

  restart|force-reload)
    $0 stop
    [ -r  $PIDFILE ] && while pidof -x $NAME |\
         grep -q `cat $PIDFILE 2>/dev/null` 2>/dev/null ; do sleep 1; done
    $0 start
    ;;
  *)
    echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
    exit 1
    ;;
esac

exit 0

Con questo script si può pilotare Trac usando /etc/init.d/trac (start-stop-restart)

Oppure si può far avviare automaticanente all'avvio con

sudo update-rc.d trac defaults

Mettere Trac dietro apache

Per utilizzare Trac dietro apache basta creare il sito Trac su /etc/apache2/sites-available

 

<VirtualHost *>
    ServerAdmin you@yoursite.com
    ServerName www.yoursite.com
    ProxyPreserveHost On

    # this prevents the follow URL path from being proxied

    ProxyPass /svn !
 
    # setup the proxy
    <Proxy *>
        Order allow,deny
        Allow from all
    </Proxy>

    ProxyPass / http://localhost:8000/
    ProxyPassReverse / http://localhost:8000/
</VirtualHost>

poi si può lanciare

sudo a2ensite

e far ripartire apache con

sudo /etc/init.d/apache restart

 

Spero che questa guida sia utile. Happy hacking !!!

 
by Maurizio Lupo last modified 2009-01-21 15:58