Apache 2
- 20 nov. 2025
- 3 min de lecture
Guide Complet : Configuration Apache2 (Domaine "arthur.local")
Partie 1 - Présentation d'Apache2
Apache HTTP Server est un serveur web puissant et open source. Il fonctionne sur une architecture modulaire qui lui permet d'être très flexible (gestion de la sécurité, langages dynamiques comme PHP, etc.). Sa fonctionnalité de Virtual Hosts est essentielle : elle permet de faire tourner plusieurs sites internet indépendants sur une seule et même machine.
Partie 2 - Les prérequis
Une machine sous Debian.
Une interface réseau nommée enp0s3.
Une adresse IP statique définie sur 192.168.1.56.
Les privilèges administrateur (root).
Partie 3 - Installation d'Apache2 sur la Debian
1. Mise à jour et Installation
On commence par mettre à jour les dépôts pour récupérer la dernière version stable, puis on installe le service.
apt update
apt install apache2 -y

2. Vérification du service
Une fois installé, on vérifie que le processus est actif :
systemctl status apache2
(Vous devriez voir le statut "active (running)" en vert).

Vous pouvez tester l'installation en ouvrant un navigateur web et en tapant
La page "Apache2 Debian Default Page" doit s'afficher.

Partie 4 - Configuration d'un hébergement web avec Apache2
Sous-partie 1 - Hébergement d'un site avec 2 IP (Virtual Host par IP)
Ici, nous allons héberger deux sites distincts en utilisant deux adresses IP différentes sur la même carte réseau.
Étape 1 : Ajout de l'IP secondaire
Nous devons ajouter l'adresse 192.168.1.156 sur l'interface enp0s3 en créant un alias (label).
Bash
ip addr add 192.168.1.156/24 dev enp0s3 label enp0s3:0
Vérifiez la présence des deux IPs avec la commande :
ip a

Étape 2 : Création de l'arborescence
Nous allons créer les dossiers pour chaque site et y placer une page d'accueil distincte.
# Création des dossiers
mkdir -p /var/www/html/site1
mkdir -p /var/www/html/site2
Pour vérifier la création des dossiers :

# Création des fichiers index.html
echo "<h1>Site 1 - Arthur (IP 56)</h1>" > /var/www/html/site1/index.html
echo "<h1>Site 2 - Arthur (IP 156)</h1>" > /var/www/html/site2/index.html
Pour vérifier la creation des fichiers :

Étape 3 : Configuration du fichier VirtualHost
Nous allons dire à Apache quel dossier servir pour quelle IP
cd /etc/apache2/sites-available
nano ip_vhosts.conf

Insérez le contenu suivant (notez le changement de nom) :
# Site 1 sur l'IP Principale
<VirtualHost 192.168.1.56:80>
ServerAdmin webmaster@site1.arthur.local
ServerName site1.arthur.local
DocumentRoot /var/www/html/site1
ErrorLog ${APACHE_LOG_DIR}/site1_error.log
CustomLog ${APACHE_LOG_DIR}/site1_access.log combined
</VirtualHost>
# Site 2 sur l'IP Secondaire
<VirtualHost 192.168.1.156:80>
ServerAdmin webmaster@site2.arthur.local
ServerName site2.arthur.local
DocumentRoot /var/www/html/site2
ErrorLog ${APACHE_LOG_DIR}/site2_error.log
CustomLog ${APACHE_LOG_DIR}/site2_access.log combined
</VirtualHost>
Étape 4 : Activation
a2ensite ip_vhosts
systemctl reload apache2

Test : Tapez dans votre navigateur.


Sous-partie 2 : Hébergement d'un site sur une seule IP mais 2 ports différents
Dans ce cas, nous n'utilisons que l'IP principale 192.168.1.56. Le premier site répondra sur le port standard (80) et le second sur le port 8080.
Étape 1 : Configuration des VirtualHosts
Nous dupliquons la configuration précédente pour la modifier.
cd /etc/apache2/sites-available
cp ip_vhosts.conf port_vhosts.conf
nano port_vhosts.conf

Modifiez le fichier pour utiliser la même IP partout, mais changez le port du deuxième bloc :
# Site 1 (Port 80)#
<VirtualHost 192.168.1.56:80>
ServerAdmin webmaster@site1.arthur.local
DocumentRoot /var/www/html/site1
</VirtualHost>
# Site 2 (Port 8080)
<VirtualHost 192.168.1.56:8080>
ServerAdmin webmaster@site2.arthur.local
DocumentRoot /var/www/html/site2
</VirtualHost>
Étape 2 : Ouverture du port d'écoute
Par défaut, Apache n'écoute que le port 80. Il faut ajouter le 8080.
nano /etc/apache2/ports.conf

Ajoutez la ligne Listen 8080 :
Listen 80
Listen 8080

Étape 3 : Activation
a2ensite port_vhosts
systemctl reload apache2

Test : Tapez


Sous-partie 3 : Hébergement sur une adresse (Ancêtre du DNS)
C'est la méthode la plus courante (Name-Based Virtual Hosting). Les deux sites sont sur l'IP 192.168.1.56 et le port 80. Apache va lire l'en-tête "Host" de la requête pour savoir s'il doit servir le site "arthur 1" ou "arthur 2".
Étape 1 : Configuration
cd /etc/apache2/sites-available
cp port_vhosts.conf name_vhosts.conf
nano name_vhosts.conf

Modifiez les balises pour utiliser l'IP principale (ou *) et assurez-vous que les ServerName sont corrects.
Apache
# Site 1
<VirtualHost 192.168.1.56:80>
ServerName site1.arthur.local
DocumentRoot /var/www/html/site1
ErrorLog ${APACHE_LOG_DIR}/site1_error.log
</VirtualHost>
# Site 2
<VirtualHost 192.168.1.56:80>
ServerName site2.arthur.local
DocumentRoot /var/www/html/site2
ErrorLog ${APACHE_LOG_DIR}/site2_error.log
</VirtualHost>
Étape 2 : Simulation DNS (Fichier Hosts Windows)
Puisque arthur.local n'est pas un vrai domaine Internet, vous devez forcer votre ordinateur à associer ce nom à l'IP de votre serveur.
Sur votre PC Windows, ouvrez le Bloc-notes en tant qu'Administrateur.
Ouvrez le fichier : C:\Windows\System32\drivers\etc\hosts

Ajoutez ces deux lignes à la fin :
192.168.1.56 site1.arthur.local
192.168.1.56 site2.arthur.local

Enregistrez le fichier.
Étape 3 : Activation finale
Nous désactivons les anciennes configurations pour éviter les conflits d'IP/Port et activons la nouvelle.
a2dissite ip_vhosts port_vhosts
a2ensite name_vhosts
systemctl reload apache2

Test final : Ouvrez votre navigateur et tapez

Vous devriez voir le contenu du site 1.
Essayez ensuite

pour voir le site 2.
