Virtual Host multiples
Un article de Wiki SOS-ADMIN.
Pour l’utilisation de multiples Virtual Host dans Apache, avec une inclusion simple sans avoir à modifier le httpd.conf à chaque nouveau Virtual Host, voici une méthode simple :
Supposons que le répertoire de conf d’Apache soit /etc/apache, il suffit de créer un sous-répertoire conf.d.
Dans le httpd.conf, ajouter (tout à la fin de préférence, pour pouvoir éventuellement faire des modifications de valeurs de conf pour un VHost spécifique) :
Include /etc/apache/conf.d/*.conf
Ensuite, dans le répertoire /etc/apache/conf.d, il suffit d’ajouter un fichier par VHost. Ce fichier doit se terminer par « .conf ». Ce fichier va donc contenir le virtual host du type :
<VirtualHost *:80>
ServerName ...
DocumentRoot ...
...
...
</VirtualHost>
Ces fichiers étant inclus en fin de fichier httpd.conf, il est possible d’écraser une valeur de configuration d’Apache uniquement pour ce VHost.
Ensuite, un simple reload d'Apache, et les fichiers ajoutés sont inclus.
En modifiant l'extension (ou en ajoutant par exemple un .old pour obtenir .conf.old) on garde une trace du Virtual Host, mais celui-ci ne sera plus inclu dans Apache (pratique pour exclure temporairement un Virtual Host).
Autre solution élégante, utilisée par exemple sur les versions Debian d'apache:
- Créer un répertoire sites-available dans /etc/apache (ex. /etc/apache/sites-available)
- Créer un répertoire sites-enabled dans /etc/apache (ex. /etc/apache/sites-enabled)
- Dans le fichier httpd.conf, ajoutez une ligne Include /etc/apache/sites-enabled/*
Ensuite, créez tous vos fichiers Virtual Host dans le répertoire sites-available.
Pour activer un site, un simple lien symbolique dans /etc/apache/site-enabled vers le fichier Virtual Host du site à activer et un reload du serveur suffisent.
Pour désactiver un site, supprimez son lien symbolique dans /etc/apache/site-enabled, relancez apache et le tout est joué.
Notez que vous pouvez aussi forcer l'ordre de chargement des Virtual Hosts en donnant au nom du lien un prefix numérique (ex. 000-domaina.be, 001-domainb.be -> 000-domaina.be sera chargé avant 001-domainb.be).
Exemple:
ns32094:/etc/apache2# ls sites-available/
USER-abm USER-dlefebvr USER-sample USER-viv default erefer.be venom.be
ns32094:/etc/apache2# ls -l sites-enabled/
lrwxrwxrwx 1 root root 36 May 6 2005 000-default -> /etc/apache2/sites-available/default
lrwxrwxrwx 1 root root 37 Jun 25 12:17 999-USER-abm -> /etc/apache2/sites-available/USER-abm
lrwxrwxrwx 1 root root 42 May 20 2005 999-USER-dlefebvr -> /etc/apache2/sites-available/USER-dlefebvr
lrwxrwxrwx 1 root root 40 May 9 2005 999-USER-sample -> /etc/apache2/sites-available/USER-sample
lrwxrwxrwx 1 root root 27 May 19 2005 999-USER-viv -> ../sites-available/USER-viv
lrwxrwxrwx 1 root root 28 Nov 8 13:13 999-erefer.be -> ../sites-available/erefer.be
lrwxrwxrwx 1 root root 37 May 14 2005 999-venom.be -> /etc/apache2/sites-available/venom.be

