Page 1 sur 1

Configurer des hôtes virtuels avec Apache

Publié : 06 mai 2014, 09:57
par phil
Information :
Les opérations décrites ici ont été réalisées sous Ubuntu Server 12.04.4 LTS, avec un serveur Apache (2.2.22) déjà installé et fonctionnel. Si le serveur n'est pas joignable par un nom de domaine, la mise en place d'un DNS sera nécessaire (point non abordé ici).
  1. [*]Contexte2>
    1. [*]Généralités3>
      Lorsque plusieurs sites Internet doivent être hébergés sur la même machine, l'une des solutions consiste à faire des serveurs virtuels. Plusieurs méthodes existent pour différencier des serveurs virtuels :
      • Leur attribuer une adresse IP différente des autres
      • Les faire écouter un port différent des autres
      • Leur attribuer un nom de domaine particulier
      Seule la dernière méthode sera abordée ici.
      [*]Principe de fonctionnement3>
      Chaque hôte virtuel aura son propre nom de domaine. En réalité, il s'agira plutôt de sous-domaines, mais cela n'a pas d'importance car la configuration se fait de la même manière.
      Afin de fournir des réponses appropriées en fonction du serveur demandé, Apache se base sur les informations contenues dans l'en-tête HTTP des requêtes entrantes.
      Par exemple, prenons deux sites (site1 et site2) hébergés sur la même machine, avec deux sous-domaines (site1.domain.org et site2.domain.org) pointant vers cette machine. Suivant l'adresse demandée par le client (par exemple un navigateur), le serveur sera capable de renvoyer les données adéquates.
    [*]Modifications à faire sur la configuration existante2>
    A partir du moment où plusieurs hôtes virtuels sont configurés, l'hôte initialement présent sur la machine doit être configuré également comme un hôte virtuel. Il convient donc d'ajouter une ligne dans son fichier de configuration (par défaut : /etc/apache2/sites-available/default), entre les balises <VirtualHost ...></VirtualHost> :

    Code : Tout sélectionner

    ServerName site.domain.org
    Si le site initial doit rentrer dans l'exemple (site1 - site2) du chapitre précédent, remplacer «site.domain.org» par «site1.domain.org» (ou toute autre valeur appropriée).
    [*]Création des fichiers de configuration des nouveaux hôtes2>
    Pour chaque hôte virtuel, un fichier de configuration est nécessaire. Par défaut, ces fichiers sont à placer dans /etc/apache2/sites-available. Les noms des fichiers sont au choix de l'utilisateur, mais il est toutefois recommandé de choisir des noms représentatifs pour chaque hôte.
    Chacun de ces fichiers doit contenir au minimum les lignes suivantes :

    Code : Tout sélectionner

    <VirtualHost *:80>
            ServerAdmin     admin_address@server.com
            ServerName      site.domain.org
            DocumentRoot    /path/to/site/root/folder
    </VirtualHost>
    
    Il faut ensuite activer les sites souhaités. Il existe une commande permettant de le faire :

    Code : Tout sélectionner

    sudo a2ensite /etc/apache2/sites-available/site_a_activer
    Il faut ensuite recharger la configuration d'Apache :

    Code : Tout sélectionner

    sudo service apache2 reload
    [*]Vérification du fonctionnement2>
Afin de vérifier le bon fonctionnement de la configuration des différents sites virtuels, il suffit de tenter d'accéder aux différents noms de domaine depuis un navigateur. Pour chaque hôte, le site affiché doit correspondre au chemin pointé par la directive «DocumentRoot».
Sources :