Aller au contenu principal

Apache et les virtualhosts

Notions théoriques

Apache est un serveur Web gratuit et open-source très populaire. Il permet de servir des pages Web à des clients qui en font la demande.

info
  • Un serveur Web écoute généralement sur le port 80 du protocole TCP/IP (http).
  • Un serveur Web écoute généralement aussi sur le port 443 du protocole TCP/IP (https).

Un virtualhost est une fonctionnalité d'Apache qui permet de servir plusieurs sites Web sur une seule machine.

Pour créer des virtualhosts il suffit de créer des fichiers de configuration dans le répertoire /etc/apache2/sites-available/. Chaque fichier de configuration définit un virtualhost, c'est-à-dire un site Web, avec son propre nom de domaine, son propre répertoire racine, etc.

Détails des principaux fichiers de configurations d'Apache
/etc/apache2/Rôle du fichier/répertoire
apache2.confFichier de configuration principal du serveur Apache.
ports.confPorts sur lesquels le serveur Apache écoute.
sites-availableVirtualhosts qui peuvent être activés dans Apache.
sites-enabledVirtualhosts qui ont été activés.
mods-availableModules qui peuvent être activés dans Apache.
mods-enabledModules qui ont été activés.
conf-availableConfigurations qui peuvent être activées dans Apache.
conf-enabledConfigurations qui ont été activées.

Exemple pratique

  1. Installer Apache :
sudo apt update
sudo apt install apache2
  1. Créer un répertoire pour notre premier site Web :
sudo mkdir /var/www/site1
sudo nano /var/www/site1/index.html

Dans ce fichier, écrire : "Bienvenue sur le site1.fr"

  1. Créer un fichier de configuration pour notre premier virtualhost :
sudo nano /etc/apache2/sites-available/site1.conf

Dans ce fichier, écrire :

<VirtualHost *:80>
ServerName site1.fr
DocumentRoot /var/www/site1
</VirtualHost>
  1. Activer le premier virtualhost et redémarrer Apache :
sudo a2ensite site1
sudo service apache2 restart
astuce

Ces 2 commandes sont équivalentes :

sudo service apache2 restart 
sudo systemctl restart apache2
  1. Répéter les étapes 2 à 4 pour notre 2ème site Web en remplaçant "site1" par "site2".

  2. Sur la machine cliente Windows 10, modifiez le fichier C:\Windows\System32\drivers\etc\hosts en ajoutant les lignes suivantes (remplacez "ip_serveur" par l'adresse IP de votre serveur Linux) :

ip_serveur site1.fr
ip_serveur site2.fr
  1. Ouvrez votre navigateur et saisissez l'URL http://site1.fr pour vérifier le bon fonctionnement de l'hébergement du 1er site Web sur votre serveur Linux.

  2. Ouvrez votre navigateur et saisissez l'URL http://site2.fr pour vérifier le bon fonctionnement de l'hébergement du 2ème site Web sur votre serveur Linux.

Test de mémorisation/compréhension


Qu'est-ce qu'Apache ?


Qu'est-ce qu'un virtualhost ?


Où se trouvent les fichiers de configuration des virtualhosts ?


Quelle commande permet d'activer un virtualhost ?


Quelle commande permet de redémarrer Apache ?



TP pour réfléchir et résoudre des problèmes

Dans ce TP, vous allez mettre en place 2 autres sites Web sur le même serveur Apache :

  1. Créez le répertoire et configurez le virtualhost pour votre portfolio.

  2. Créez le répertoire et configurez le virtualhost pour l'un de vos projets informatiques.

  3. Modifiez le fichier hosts sur la machine Windows.

  4. Testez le bon fonctionnement de vos 2 sites

  5. Développez vos 2 sites

Une fois que vos sites sont accessibles, n'hésitez pas à utiliser un framework pour améliorer l'apparence de vos sites et ajouter des fonctionnalités intéressantes.

Voici un modèle de fichier HTML :

<!DOCTYPE html>
<html>
<head>
<title>Mon portfolio</title>
</head>
<body>
<h1>Bienvenue sur mon portfolio !</h1>
<p>Je suis un étudiant passionné par l'informatique.
Découvrez mes projets et mes compétences !</p>
</body>
</html>

Une solution

Ce TP vous donne l'opportunité de montrer vos compétences et votre créativité. Vous pouvez utiliser tous les outils et technologies que vous avez appris depuis le début de votre formation.