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

> > > La gestion des sites par virtualhosts

La gestion des sites par virtualhosts

La configuration de virtualhosts sur le serveur Apache permet à un même serveur d’héberger plusieurs sites différents, soit de domaines différents (domaine1.tld, domaine2.tld...) ou de sous-domaine d’un même nom de domaine (ssdom1.domaine1.tld, ssdom2.domaine1.tld, ssdom3.domaine1.tld...).

Configuration des virtualhosts

Imaginons que nous souhaitions héberger deux domaines différents sur le serveur (domaine1.tld, domaine2.tld, un de ces domaines ayant deux sous-domaines (ssdom1.domaine2.tld, ssdom2.domaine2.tld).

On pourrait configurer ces virtualhosts directement dans la configuration du serveur, mais pour faciliter leur gestion, on va créer par exemple deux fichiers de configuration, un pour chaque domaine, afin d’en faciliter l’activation et la désactivation par la suite.

Dans un premier temps, il est nécessaire de vérifier la présence de la directive NameVirtualHost *:80 dans les fichiers de configuration d’Apache. En général, sur Debian, cette directive se trouve dans le fichier /etc/apache2/ports.conf. Si cette directive est commentée [1], décommentez là, si elle n’est pas présente, ajoutez là.

Cas du domaine sans sous-domaine

Le domaine domaine1.tld n’a pas de sous-domaine à configurer.

On va faire pointer sa destination vers le répertoire local /var/www/domaine1.tld/ par exemple.

On crée son fichier de configuration :

  1. sudo nano /etc/apache2/sites-available/domaine1.tld

Dans lequel on ajoute les directives suivantes :

  1. <VirtualHost *:80>
  2. ServerName domaine1.tld # Adresse principale
  3. ServerAlias www.domaine1.tld # Aliases du domaine, si l'adresse ou les adresses sont utilisée, on pointe au même endroit, facultatif
  4. ServerAdmin postmaster@domaine1.tld # Adresse email de l'admin du domaine, facultatif
  5. DocumentRoot /var/www/domaine1.tld # Répertoire où pointe le domaine
  6. </VirtualHost>

Télécharger

Après son activation (voir ci-dessous), si le visiteur tappe domaine1.tld ou www.domaine1.tld, il tombera sur le répertoire /var/www/domaine1.tld.

Cas du domaine qui a deux sous-domaine

Dans le cas de domaine2.tld, il sera nécessaire de déclarer trois virtualhosts différents dans le fichier de configuration.

Les différents adresses pointeront sur les dossiers :

  • /var/www/domaine2.tld/www/ pour http://www.domaine2.tld/ et http://domaine2.tld ;
  • /var/www/domaine2.tld/ssdom1/ pour http://ssdom1.domaine2.tld/ ;
  • /var/www/domaine2.tld/ssdom2/ pour http://ssdom2.domaine2.tld/ ;

On crée son fichier de configuration :

  1. sudo nano /etc/apache2/sites-available/domaine2.tld

Dans lequel on ajoute les directives suivantes :

  1. <VirtualHost *:80>
  2. ServerName domaine2.tld # Adresse principale
  3. ServerAlias www.domaine2.tld # Aliases du domaine, si l'adresse ou les adresses sont utilisée, on pointe au même endroit, facultatif
  4. ServerAdmin postmaster@domaine2.tld # Adresse email de l'admin du domaine, facultatif
  5. DocumentRoot /var/www/domaine2.tld/www # Répertoire où pointe le domaine
  6. </VirtualHost>
  7.  
  8. <VirtualHost *:80>
  9. ServerName ssdom1.domaine2.tld # Adresse principale
  10. ServerAdmin postmaster@domaine2.tld # Adresse email de l'admin du domaine, facultatif
  11. DocumentRoot /var/www/domaine2.tld/ssdom1 # Répertoire où pointe le domaine
  12. </VirtualHost>
  13.  
  14. <VirtualHost *:80>
  15. ServerName ssdom2.domaine2.tld # Adresse principale
  16. ServerAdmin postmaster@domaine2.tld # Adresse email de l'admin du domaine, facultatif
  17. DocumentRoot /var/www/domaine2.tld/ssdom2 # Répertoire où pointe le domaine
  18. </VirtualHost>

Télécharger

Après son activation (voir ci-dessous), si le visiteur tappe domaine2.tld ou www.domaine2.tld, il tombera sur le répertoire /var/www/domaine2.tld/www, s’il tappe ssdom1.domaine2.tld, il tombera sur le répertoire /var/www/domaine2.tld/ssdom1 et ainsi de suite.

Activation et désactivation de virtualhosts

Sur Debian il est très simple d’activer ou de désactiver chaque virtualhost grâce aux commandes a2ensite et a2dissite [2]. On a préféré les séparer dans des fichiers de configuration différents afin que cette étape soit la plus simple possible.

Pour activer notre virtualhost domaine1 il suffit de tapper la commande suivante :

  1. sudo a2ensite domaine1

Pour le désactiver, la commande suivante doit être utilisée :

  1. sudo a2dissite domaine1

Afin de prendre en compte les modifications, il suffit de recharger la configuration du serveur Apache avec la commande :

  1. sudo /etc/init.d/apache2 force-reload

Notes

[1La ligne commence par le caractère "#"

[2Ces deux commandes créent ou suppriment des liens symboliques de votre définition de virtualhost créée dans le répertoire /etc/apache2/sites-available/ dans le répertoire /etc/apache2/sites-enabled/

  • Auteur :
  • Publié le :
  • Mis à jour : 13/08/12

1 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.