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
-
Configurer le fichier
hosts
sur la machine cliente :Modifiez le fichier
hosts
de votre machine pour associer l’adresse IP du serveur à votre nom de domaine :ip_serveur monprojet.fr
infoSi vous n'avez pas accès à un serveur DNS (Domain Name System), vous devez modifier le fichier
hosts
de votre machine pour établir une association manuelle entre l'adresse IP du serveur et le nom de domaine souhaité.Le fichier
hosts
agit comme une petite base de données locale, permettant à votre système d'exploitation de résoudre un nom de domaine (par exemple,monprojet.fr
) en une adresse IP (par exemple,192.168.1.10
) sans passer par un serveur DNS.Cette méthode est utile pour les environnements de développement ou de test où il n'est pas nécessaire de configurer un DNS public ou interne.
En pratique, cela vous permet de configurer un virtualhost et d'accéder à vos sites hébergés en saisissant des noms de domaine personnalisés dans votre navigateur, plutôt que de devoir utiliser des adresses IP directement.
-
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.