close
Linux/Unix

Apache : Apprendre à créer des virtual Hosts

Apache est un logiciel open source qui permet de créer un serveur Web pour pouvoir servir des sites web sur internet. Dans cet article nous allons découvrir ce que c’est un Virtual Host et comment peut-on s’en servir pour gérer des site web.

Virtual Hosts :

Virtual Host est un terme qui signifie la méthode de faire fonctionner un ou plusieurs site web sur seulement un seul serveur web au lieu d’héberger chaque site sur un serveur web indépendant. Deux principaux types de virtual hosts existent : Celui qui est basé sur le nom (name-based virtual hosting) et celui qui est basé sur l’adresse IP (IP-based virtual hosting).

Avec Virtual Host basé sur IP vous pouvez héberger plusieurs sites sur le même Host mais chaque site web a une adresse IP différente alors que dans le cas du Virtual Host basé sur le nom vous pouvez vous pouvez héberger plusieurs sites sur le même Host et avec la même adresse IP.

Maintenant que vous savez à quoi sert le Virtual Hosting passons maintenant à la pratique, nous allons voir comment configurer les Virtual Host d’apache sur Ubuntu 18.04 LTS.

Configurer apache virtual hosts sur Ubuntu 18.04 LTS

Nous allons d’abord voir comment configurer Apache Virtual host basé sur le nom.

Configurer Virtual Host basé sur le nom :

Installons apache avec la commande ci-dessous :

sudo apt-get install apache2

Assurez-vous que le service apache est bien démarré :

systemctl status apache.service

Ensuite testez si Apache fonctionne bien, pour cela ouvrez votre navigateur et saisissez le lien http://Adresse_IP ou http://localhost, Vous devriez voir une page comme celle là :
Image

Maintenant que notre service est up et opérationnel passons à l’étape suivante.

Répertoire pour chaque Virtual Hosts

Nous allons créer deux Vritual Host : monsite1.local et monsite2.local
Pour chaque Virtual Host je vais crée un répertoire , celui là est nécessaire pour stocker les fichiers de nos virtual Host :

sudo mkdir -p /var/www/html/hassan.local/public_html
sudo mkdir -p /var/www/html/Farissi.local/public_html

Dans la commande ci-dessus, l’option “-p” sert à créer tout le chemin.

Maintenant nous allons donner le droit de lire ( r–)  à tous les utilisateurs sauf root qui a tous les droits ( rwx ) :

#chmod -R 755 /var/www/html/

Il est temps maintenant de créer une page web pour nos  virtual Host.

Création dune page Web pour chaque Virtual Host :

Nous allons crée une  page web ( nommée Index.html) pour  monsite.local :

vim /var/www/html/hassan.local/public_html/index.html

Mettez le code html ci-dessous dans le  du fichier html et enregistrer le :

<html>
 <head>
 <title>www.hassan.lan</title>
 </head>
 <body>
 <h1>Hello, st une page de test pour hassan.lan website</h1>
 </body>
</html>

Nous allons faire la même chose pour monsite2.local :

vim /var/www/html/Farissi.lan/public_html/index.html

et Ajoutez les ligne html ci-dessous :

<html>
 <head>
 <title>www.ostechnix.lan</title>
 </head>
 <body>
 <h1>Hello, This is a test page for ostechnix2.lan website</h1>
 </body>
</html>

Création de fichier de configuration pour chaque Host

Nos avons besoin de créer un fichier de configuration pour chaque virtual Host, commençon par monsite1.local :

Copier le fichier 000-defaut.conf et donner lui un nom de votre choix à condition d’ajouter l’extension .conf ( dans mon cas c’est monsite1.local.conf ).

#cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/monsite1.local.conf

Editer le fichier monsite1.local.conf et ajouter les valeur ci-dessous :

<VirtualHost *:80>
 # The ServerName directive sets the request scheme, hostname and port that
 # the server uses to identify itself. This is used when creating
 # redirection URLs. In the context of virtual hosts, the ServerName
 # specifies what hostname must appear in the request's Host: header to
 # match this virtual host. For the default virtual host (this file) this
 # value is not decisive as it is used as a last resort host regardless.
 # However, you must set it for any further virtual host explicitly.
 #ServerName www.example.com

   ServerAdmin webmaster@monsite1.local
   ServerName monsite1.local
   ServerAlias www.monsite1.com
   DocumentRoot /var/www/html/hassan.lan/public_html

Enregistrer et quitter le fichier.

Éditons maintenant le fichier monsite2.local.conf :

vim /etc/apache2/sites-available/monsite2.local.conf :

<VirtualHost *:80>
 # The ServerName directive sets the request scheme, hostname and port that
 # the server uses to identify itself. This is used when creating
 # redirection URLs. In the context of virtual hosts, the ServerName
 # specifies what hostname must appear in the request's Host: header to
 # match this virtual host. For the default virtual host (this file) this
 # value is not decisive as it is used as a last resort host regardless.
 # However, you must set it for any further virtual host explicitly.
 #ServerName www.example.com

    ServerAdmin webmaster@monsite2.local
    ServerName monsite2.local
    ServerAlias www.monsite2.local
    DocumentRoot /var/www/html/monsite2.local/public_html

</VirtualHost>

Activation des fichiers de configuration de Virtual Host :

Après avoir effectuée toutes les actions précédentes nous allons maintenant désactiver le fichier de configuration par défaut (  000-default.conf ) et activer ceux que nous avons crée avec les commandes ci-dessous :

$ sudo a2dissite 000-default.conf
$ sudo a2ensite monsite1.local.conf
$ sudo a2ensite monsite2.local.conf

Ensuite redémarré le service apache pour que toutes ces changement soient pris en compte :

#systemctl restart apache2

Et voila nous avons terminé la configuration de nos Virtual Host il nous ne reste que tester notre travail.

Mais avant de tester il nous faut une petit configuration à faire vu que nous ne disposons pas de DNS nous allons jouer avec le fichier hosts et faire correspondre l’adresse IP de notre serveur Web avec les noms de domaine des deux sites Web comme ci-dessous :

#vim /etc/hosts
192.168.3.12   monsite1.local
192.168.3.11   monsite2.local

Ouvrez votre navigateur et saisissez les nom de domaine de nos sites.

Félicitation nos sites sont bien accessibles :)Comme pouvez le constater nous avons utilisé la même adresse IP pour les deux différents site web c’est ce qu’on appel virtual host basé sur le nom”.

J’espère que cet article vous a bien été utile.

Leave a Response