wiki:ConfigurazioneTracSVN

Come configurare l'accesso a SVN su DAV e l'uso di Trac per repository multipli

Attenzione: il materiale qui presente è assolutamente preliminare e in fase di elaborazione, se ne eviti l'uso fin tanto che questo avviso non sarà rimosso.

Il primo passo è eseguire la configurarazione per l'uso di Subversion su DAV, per questo occorre usare Apache 2.0, ed utilizzare il modulo specifico, che nel caso di Debian viene installato con il pacchetto libapache2-svn. Per poterlo utilizzare basta aver cura di abilitarlo in /etc/apache2/mods-enabled.

Nel nostro caso si userà un virtual host dedicato, che è svn.truelite.it sotto cui compariranno tutti i repository; si suppone inoltre che i dati (quelli di Subversion) ad essi relativi stiano al di sotto di una sola directory (nel caso /var/svn/truelite), la configurazione da usare è:

<VirtualHost *:80>
        ServerName svn.truelite.it
        ServerAlias svn.truelite.bz
        DocumentRoot /var/www/svn.truelite.it
        Redirect / https://svn.truelite.it/
</VirtualHost>

<VirtualHost *:443>
        DocumentRoot /var/www/svn.truelite.it
        Servername svn.truelite.it
        ServerAlias svn.truelite.bz
        ErrorLog /var/log/apache2/svn.truelite.it-error.log
        CustomLog /var/log/apache2/svn.truelite.it-access.log combined
        Alias /trac "/usr/share/trac/htdocs/"
        <IfModule mod_ssl.c>
                SSLEngine on
                SSLCertificateFile /etc/apache2/ssl/ssl.crt/server.crt
                SSLCertificateKeyFile /etc/apache2/ssl/ssl.key/server.key
                SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
        </IfModule>
        <Location /svn>
                DAV svn
                SVNParentPath /var/svn/truelite
                #SVNIndexXSLT /svnindex.xsl
                <LimitExcept GET PROPFIND OPTIONS REPORT>
                        AuthName "Truelite SVN"
                        AuthType Basic
                        AuthLDAPURL ldap://127.0.0.1/ou=People,dc=truelite,dc=it
                        Require valid-user
                </LimitExcept>
        </Location>
        # configurazione di Trac
        ...
</VirtualHost>

A questo punto occorrerà creare l'ambiente di Trac, per questo si usa il comando trac-admin, in genere i relativi dati si memorizzano sotto /var/trac, nel nostro caso metteremo tutto sotto /var/trac/truelite. Per ciascun repository si dovrà creare l'ambiente iniziale con qualcosa del tipo:

trac-admin /var/trac/truelite/migr-manager initenv

questo creerà la directory con tutti i dati di Trac, ma essendo eseguito da root in genere i permessi non sono corretti per l'accesso da parte di Apache, pertanto occorrerà modificarli con:

chown -R www-data.www-data /var/trac/truelite/packages

Inoltre in genere i permessi degli utenti Trac sono impostati al default (che ad esempio prevede la scrittura anonima del wiki), è pertanto il caso di assegnarli adeguatamente con:

trac-admin /var/trac/truelite/packages permission remove anonymous WIKI_CREATE WIKI_MODIFY
trac-admin /var/trac/truelite/packages permission add authenticated MILESTONE_CREATE 
trac-admin /var/trac/truelite/packages permission add authenticated MILESTONE_DELETE  
trac-admin /var/trac/truelite/packages permission add authenticated MILESTONE_MODIFY
trac-admin /var/trac/truelite/packages permission add authenticated REPORT_ADMIN  
trac-admin /var/trac/truelite/packages permission add authenticated REPORT_DELETE  
trac-admin /var/trac/truelite/packages permission add authenticated ROADMAP_ADMIN  
trac-admin /var/trac/truelite/packages permission add authenticated TICKET_ADMIN
trac-admin /var/trac/truelite/packages permission add authenticated WIKI_ADMIN  
trac-admin /var/trac/truelite/packages permission add authenticated WIKI_CREATE  
trac-admin /var/trac/truelite/packages permission add authenticated WIKI_DELETE  
trac-admin /var/trac/truelite/packages permission add authenticated WIKI_MODIFY

Infine si potranno rendere disponibili le pagine di Trac in maniera automatica utilizzando le rewrite rules di Apache, in questo modo all'accesso ad una URL sotto /trac/progetto, verrà invocato automaticamente lo script CGI di Trac con il corretto environment:

        # configurazione di Trac
        <LocationMatch (.*)/login>
                AuthName "Truelite-Trac"
                AuthType Basic
                AuthLDAPURL ldap://127.0.0.1/ou=People,dc=truelite,dc=it
                Require valid-user
        </LocationMatch>
        RewriteEngine on
        RewriteRule ^/trac/+$                   /index.cgi [L]
        RewriteCond /var/trac/truelite/$1       -d
        RewriteRule ^/trac/([-[:alnum:]]+)(/?.*) /trac.cgi$2 [S=1,E=TRAC_ENV:/var/trac/truelite/$1]
        ErrorDocument 404       /index.cgi
Last modified 13 years ago Last modified on Nov 22, 2005, 6:01:58 PM