Table des matières

Apache : configurer les hôtes virtuels

Nous prendrons pour exemple la création d'un hôte virtuel pour monsite.tld

Adaptez pour vos propres domaines.

En modifiant le fichier /etc/hosts, vous pourrez tester la configuration pour votre ordinateur personnel, mais le contenu ne sera accessible que localement : les autres visiteurs ne pourront pas accéder au site de l'extérieur via le nom de domaine.

Depuis la version 2.4, la syntaxe des fichiers vhosts a changé :

  1. Le nom des fichiers doit se terminer par .conf
  2. Les directives Allow sont remplacées par Require
Remplacer (ancienne syntaxe) par
autoriser toutes les requêtes
Order allow,deny
Allow from all
Require all granted
interdire toutes les requêtes
Order deny,allow
Deny from all
Require all denied

Pré-requis

Première étape : Créez un répertoire pour votre hôte virtuel

  1. Créez le répertoire et réglez ses permissions :

    ...@...:~ $ sudo mkdir -p /var/www/html/monsite.tld
    ...@...:~ $ sudo chown -R www-data:www-data /var/www/html
    ...@...:~ $ sudo chmod -R 755 /var/www/html

  2. Vous pouvez y installer une page de test : créez avec les droits d'administration un fichier
    /var/www/html/monsite.tld/index.html
    <html>
      <head>
        <title>Bienvenue sur monsite.tld !</title>
      </head>
      <body>
        <h1>Succès ! L'hôte virtuel monsite.tld fonctionne !</h1>
      </body>
    </html>

Autres étapes

  1. Créez avec les droits d'administration le fichier d'hôte virtuel 1) :
    /etc/apache2/sites-available/monsite.tld.conf
    <VirtualHost *:80>
        ServerName monsite.tld
        ServerAlias www.monsite.tld
        DocumentRoot /var/www/html/monsite.tld
        ServerAdmin admin@monsite.tld
        <Directory /var/www/html/monsite.tld/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Require all granted
        </Directory>
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
    • ServerAdmin : adresse électronique par laquelle l'administrateur du site peut recevoir des courriels
    • ServerName : domaine de base de l'hôte virtuel
    • ServerAlias : autres noms synonymes du nom de base
    • DocumentRoot : répertoire de l'hôte virtuel
  2. Activez le nouveau fichier de l'hôte virtuel :

    ...@...:~ $ sudo a2ensite monsite.tld.conf
    ...@...:~ $ sudo systemctl restart apache2

    1. Vérifiez le succès du redémarrage :

      ...@...:~ $ sudo systemctl status apache2

  3. Éditez avec les droits d'administration le fichier /etc/hosts pour ajouter une ligne comme ceci :
    /etc/hosts
    ...
    IP_de_votre_serveur monsite.tld

    Ainsi, tout appel à monsite.tld depuis le PC renvoie au serveur et permet de tester nos hôtes virtuels même sans posséder ce domaine. Rappel : cela ne fonctionne qu'en local, les appels extérieurs à ce nom de domaine échouent.

Conclusion

Maintenant que vos hôtes virtuels sont configurés, vous pouvez tester votre configuration en ouvrant dans votre navigateur web le domaine que vous avez configuré :http://monsite.tld

Vous devriez voir une page qui affiche :

Succès ! L'hôte virtuel exemple.com fonctionne !

Vous pouvez créer des hôtes virtuels supplémentaires en suivant les mêmes étapes.

Il n'y a pas de limite au nombre de noms de domaine qu'Apache peut gérer.

Problèmes connus

Voir aussi


Basé sur « Comment configurer les hôtes virtuels Apache » par digitalocean.com.

1)
vous pouvez vous inspirer du fichier /etc/apache2/sites-available/000-default.conf