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.
- 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.conf | Fichier de configuration principal du serveur Apache. |
ports.conf | Ports sur lesquels le serveur Apache écoute. |
sites-available | Virtualhosts qui peuvent être activés dans Apache. |
sites-enabled | Virtualhosts qui ont été activés. |
mods-available | Modules qui peuvent être activés dans Apache. |
mods-enabled | Modules qui ont été activés. |
conf-available | Configurations qui peuvent être activées dans Apache. |
conf-enabled | Configurations qui ont été activées. |
Exemple pratique
- Installer Apache :
sudo apt update
sudo apt install apache2
- 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"
- 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>
- Activer le premier virtualhost et redémarrer Apache :
sudo a2ensite site1
sudo service apache2 restart
Ces 2 commandes sont équivalentes :
sudo service apache2 restart
sudo systemctl restart apache2
-
Répéter les étapes 2 à 4 pour notre 2ème site Web en remplaçant "site1" par "site2".
-
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
-
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.
-
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
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 :
- à l'adresse http://portfolio.fr
un portfolio pour présenter vos compétences et réalisations,
- et à l'adresse http://projet-sio.fr
un site pour l'un de vos projets informatiques.
-
Créez le répertoire et configurez le virtualhost pour votre portfolio.
-
Créez le répertoire et configurez le virtualhost pour l'un de vos projets informatiques.
-
Modifiez le fichier
hosts
sur la machine Windows. -
Testez le bon fonctionnement de vos 2 sites
-
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
Vous devez être connecté pour voir le contenu.
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.