Carnet Wiki

Virtualhost pour la mutualisation

Version 1 — January 2009 livier

Rappels

De façon générale chaque site hébergé sur un serveur Apache est configuré comme VirtalHost par un fichier dans le répertoire /etc/apache2/sites-available et activé par un lien dans le répertoire /etc/apache2/sites-enabled. Voir la doc de Apache à ce sujet : Hôtes virtuels

Options de mise en oeuvre

Un seul fichier Virtualhost
Etant donné que les différents sites mutualisés sous SPIP doivent pointer sur le même répertoire SPIP il est possible de les déclarer tous dans le même VirtualHost de la façon suivante :

<VirtualHost *:80>
        ServerName         site1.tld
        ServerAlias www.site1.tld
        ServerAlias site2.tld
        ServerAlias www.site2.tld

    DocumentRoot "/var/www/spip"
    <Directory "/var/www/spip">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

Inconvénients de cette méthode : les autres éléments de configuration du site seront aussi partagés. En particulier il ne sera pas possible de configurer ErrorLog et CustomLog pour chaque site et les fichiers de log se retrouveront mélangés.

D’autres considérations de sécurité / confidentialité / séparations entre les sites pourraient être à considérer. Que ceux qui pourraient nous éclairer mieux le fassent ici ;-)

Un fichier Virtualhost par site

<VirtualHost *:80>
        ServerName         site1.tld
        ServerAlias www.site1.tld

    DocumentRoot "/var/www/spip"
    <Directory "/var/www/spip">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

pour site1.tld

<VirtualHost *:80>
        ServerName         site2.tld
        ServerAlias www.site2.tld

        DocumentRoot "/var/www/spip"
    <Directory "/var/www/spip">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

pour site2.tld

Quand à moi je n’arrives toujours pas à configurer ErrorLog et CustomLog différemment pour chaque site et je fais planter Apache.

Cette prise de notes est faite pour rendre service ... et recueuillir d’autres comptes rendus d’expérience pour éclairer la mienne ;-)