Documentation technique : Debian
Documentation basée sur la distribution Debian

> > > > Optimisation des performances de Trac

Optimisation des performances de Trac

Dans certaines configurations Trac peut être très lent. Par exemple si vous utilisez le module fastcgi pour Trac et qu’en même temps le module deflate est actif sur le serveur (on en parle sur les listes de diffusion et dans les tickets).

Comme préconisé dans la documentation de Trac, on va utiliser mod_wsgi pour Trac et servir les ressources statiques (images, javascript, feuilles de style, etc) à l’aide d’Apache.

Servir les ressources statiques avec Apache

On copie les ressources statiques dans /var/trac/deploy :

  1. trac-admin /var/trac/domaine.tld/ deploy /var/trac/deploy

Et on ajoute les lignes suivantes en début du virtualhost de Trac avant la ligne de la directive ScriptAlias :

  1. Alias /trac/domaine.tld/chrome/ /var/trac/deploy/htdocs/
  2. <Directory "/var/trac/deploy/htdocs">
  3. Order allow,deny
  4. Allow from all
  5. </Directory>

Télécharger

Sur la doc officielle de Trac

Utiliser le mod_wsgi

On installe le paquet mod_wsgi pour apache (ceci active le module automatiquement dans /etc/apache2/mods-enabled/).

  1. sudo apt-get install libapache2-mod-wsgi

On vérifie que le module a bien été activé. La commande suivante doit vous répondre "Module wsgi already enabled" :

  1. a2enmod wsgi

Dans le cas contraire le module est activé par la commande.

Et on ajoute les lignes suivantes au virtualhost de Trac :

  1. # On utilise la methode wsgi pour trac
  2. WSGIScriptAlias /trac /var/trac/deploy/cgi-bin/trac.wsgi
  3. <Directory /var/trac/domaine.tld>
  4. WSGIApplicationGroup %{GLOBAL}
  5. Order deny,allow
  6. Allow from all
  7. </Directory>

Télécharger

Le fichier d’hôte virtuel final

Notre virtualhost doit maintenant contenir ceci :

  1. <VirtualHost *:80>
  2. ServerAdmin admin@domaine.tld
  3. ServerName svn.domaine.tld
  4. DocumentRoot /var/trac/domaine.tld
  5. #Gerer les fichiers statiques par Apache
  6. Alias /trac/domaine.tld/chrome/ /var/trac/deploy/htdocs/
  7. <Directory "/var/trac/deploy/htdocs">
  8. Order allow,deny
  9. Allow from all
  10. </Directory>
  11. # On utilise la méthode wsgi pour trac
  12. WSGIScriptAlias /trac /var/trac/deploy/cgi-bin/trac.wsgi
  13. <Directory /var/trac/domaine.tld>
  14. WSGIApplicationGroup %{GLOBAL}
  15. Order deny,allow
  16. Allow from all
  17. </Directory>
  18. <Location /trac>
  19. SetEnv TRAC_ENV "/var/trac/domaine.tld"
  20. Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
  21. Order allow,deny
  22. Allow from all
  23. </Location>
  24.  
  25. # L'authentification pour trac est basée sur les même utilisateurs qu'en svn
  26. <Location "/trac/login">
  27. AuthType Basic
  28. AuthName "Trac"
  29. AuthUserFile /var/svn/domaine.tld/conf/passwd
  30. Require valid-user
  31. </Location>
  32.  
  33. DirectoryIndex trac/
  34.  
  35. ErrorLog /var/log/apache2/error.trac-arscenic.log
  36. CustomLog /var/log/apache2/access.trac-arscenic.log combined
  37. LogLevel debug
  38.  
  39. <Location /svn>
  40. DAV svn
  41. SVNPath /var/svn/domaine.tld
  42.  
  43. # our access control policy
  44.  
  45. # try anonymous access first, resort to real
  46. # authentication if necessary.
  47.  
  48. # how to authenticate a user
  49. AuthType Basic
  50. AuthName "Arscenic Subversion repository"
  51. AuthUserFile /var/svn/domaine.tld/conf/passwd
  52.  
  53. Satisfy Any
  54. AuthzSVNAccessFile /var/svn/domaine.tld/conf/authz
  55.  
  56. Require valid-user
  57. </Location>
  58. </VirtualHost>

Télécharger

Et pour finir on redémarre apache pour prendre en compte toutes ces modifications.

  1. /etc/init.d/apache2 restart

Sources :

  • Auteur :
  • Publié le :
  • Mis à jour : 25/04/12

Aucun commentaire


Qui êtes-vous ?
Ajoutez votre commentaire ici
  • Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.