Alternc a une gestion particulière des virtualhost apache ...
Afin que notre dépot fonctionne avec Alternc il est nécessaire de réaliser ces deux étapes :
L’objectif est toujours d’avoir une instance trac disponible à l’adresse http://svn.arscenic.org
et le dépot subversion accessible à l’adresse http://svn.arscenic.org/svn
Modifier le déploiement de trac
On va dans un premier temps modifier l’emplacement des répertoire cgi-bin et htdocs créés par trac afin qu’ils soient accessibles par l’utilisateur d’Alternc :
- sudo trac-admin /var/trac/arscenic.org/ deploy /var/alternc/html/k/kent1/www/arscenic.org/svn
- le chemin
/var/trac/arscenic.org/
doit être le chemin vers l’instance trac installée précédemment - le chemin
/var/alternc/html/k/kent1/www/arscenic.org/svn
doit pointer vars le répertoirehtml
d’un utilisateur alternc (ici : kent1) puis vers un répertoire où pointera notre sous domaine "svn" (ici : www/arscenic.org/svn).
La commande trac-admin
doit alors avoir créé une arborescence qui ressemble à cela :
- ls -lsa /var/alternc/html/k/kent1/www/arscenic.org/svn
- total 16
- 4 drwxr-sr-x 4 root 2002 4096 avr 19 03:35 .
- 4 drwxr-sr-x 41 www-data 2002 4096 avr 19 03:35 ..
- 4 drwxr-sr-x 2 root 2002 4096 avr 19 03:35 cgi-bin
- 4 drwxr-sr-x 4 root 2002 4096 avr 19 03:35 htdocs
Il est nécessaire que ces fichiers soient lisibles par le serveur http (Apache), on va donc modifier les droits en utilisant cet utilisateur et le groupe de l’utilisateur alternc de ce répertoire (ici "2002" cf commande précédente) :
- sudo chown -Rvf www-data:2002 /var/alternc/html/k/kent1/www/arscenic.org/svn
Cette commande permet de comprendre ce qu’il est nécessaire de faire, mais la meilleure méthode afin de corriger ce problème de droits est d’utiliser le script fourni par alternc :
- sudo sh /usr/lib/alternc/fixperms.sh
Il est également nécessaire que les scripts cgi soient executables :
- sudo chmod u+x -R /var/alternc/html/k/kent1/www/arscenic.org/svn/cgi-bin
Configuration du virtualhost pour alternc
Alternc ne prend pas en compte les virtualhost normaux dans /etc/apache2/sites-available
. Il est donc nécessaire que l’on désactive l’ancien fichier créé :
- sudo a2dissite svn
Il faut ensuite créer depuis l’interface d’Alternc (avec l’utilisateur "kent1" dans notre cas) un virtualhost "svn" pour le domaine "arscenic.org" pointant sur le répertoire "www/arscenic.org/svn/".
Alternc crée pour chacun de ses domaines et sous-domaines un fichier dans le répertoire /var/alternc/apacheconf/
qu’il inclu automatiquement dans le fichier /etc/apache2/conf.d/override_php.conf
qui lui sert uniquement à ajouter ses directives pour php, mais cela ne nous empêche pas d’y ajouter autre chose.
Il faut alors modifier manuellement le fichier de configuration de ce virtualhost :
- sudo nano /var/alternc/apacheconf/a/svn.arscenic.org
Ajoutez à son contenu celui-ci (en le modifiant avec vos valeurs personnelles bien entendu) :
- <VirtualHost *:80>
- Alias /trac/chrome/site /var/alternc/html/k/kent1/www/arscenic.org/svn/htdocs/site/
- Alias /trac/chrome/common /var/alternc/html/k/kent1/www/arscenic.org/svn/htdocs/common/
- DocumentRoot /var/alternc/html/k/kent1/www/arscenic.org/svn/
- ServerName svn.arscenic.org
- <Directory "/var/alternc/html/k/kent1/www/arscenic.org/svn/htdocs">
- Order allow,deny
- Allow from all
- </Directory>
- ScriptAlias /trac /var/alternc/html/k/kent1/www/arscenic.org/svn/cgi-bin/trac.fcgi
- DirectoryIndex trac/
- <Location /trac>
- SetEnv TRAC_ENV "/var/trac/arscenic.org"
- Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
- Order allow,deny
- Allow from all
- </Location>
- <Location "/trac/login">
- AuthType Basic
- AuthName "Trac"
- AuthUserFile /var/svn/aires-de-confluxence.info/conf/passwd
- Require valid-user
- </Location>
- ErrorLog /var/log/apache2/error.trac-arscenic.log
- CustomLog /var/log/apache2/access.trac-arscenic.log combined
- LogLevel debug
- <Location /svn>
- DAV svn
- SVNPath /var/svn/arscenic.org
- # our access control policy
- # try anonymous access first, resort to real
- # authentication if necessary.
- # how to authenticate a user
- AuthType Basic
- AuthName "Arscenic Subversion repository"
- AuthUserFile /var/svn/arscenic.org/conf/passwd
- Satisfy Any
- AuthzSVNAccessFile /var/svn/arscenic.org/conf/authz
- Require valid-user
- </Location>
- </VirtualHost>
Enfin, on peut redémarrer le serveur Apache :
- sudo /etc/init.d/apache2 restart