Linux Debian — VirtualHosts · 3 méthodes : IP, Ports, Noms DNS
hosts local# Ouvrir le fichier de configuration réseau
nano /etc/network/interfaces
# Loopback (ne pas modifier)
auto lo
iface lo inet loopback
# Interface réseau principale
allow-hotplug enp0s3
iface enp0s3 inet static
address 172.17.21.92
netmask 255.255.0.0
gateway 172.17.0.1
sudo systemctl restart networking
# Afficher toutes les interfaces réseau
ip a
# Ou avec ifconfig (si installé)
ifconfig
enp0s3. Le mot-clé allow-hotplug active l'interface automatiquement au démarrage. Vérifier avec ip a si le nom diffère sur votre machine.# Redémarrer le service réseau pour appliquer les changements
sudo systemctl restart networking
# Vérifier que l'IP est bien appliquée (doit afficher 172.17.21.92)
ip a
# Tester la connectivité vers la passerelle
ping 172.17.0.1
ping 172.17.0.1 répond, la configuration IP est correcte. L'interface enp0s3 doit afficher 172.17.21.92/16 dans la sortie de ip a.| Paramètre | Commande / Fichier | Description |
|---|---|---|
| Voir les interfaces | ip a | Liste toutes les interfaces et leurs IPs actuelles |
| Config IP fixe | /etc/network/interfaces | Fichier de configuration réseau Debian |
| Redémarrer réseau | systemctl restart networking | Applique les changements du fichier interfaces |
| Tester connexion | ping 8.8.8.8 | Vérifie l'accès Internet/passerelle |
# Mettre à jour les paquets
apt update
# Installer Apache2 (confirmer avec "oui")
apt install apache2
# Accéder au dossier racine d'Apache
cd /var/www/html
# Modifier la page d'accueil pour tester
nano index.html
site1/index.html est vide pour l'instant. Il faut d'abord créer son contenu avant de le copier vers site2.nano /var/www/html/site1/index.html
Ensuite copier vers site2 — deux façons de faire :
cp /var/www/html/site1/index.html /var/www/html/site2/index.html
cd /var/www/html
cp site1/index.html site2/index.html
http://<adresse_IP_du_serveur>index.html doit s'afficher.mkdir -p /var/www/html/site1 /var/www/html/site2
site1/index.html est vide pour l'instant. Tu dois d'abord créer son contenu avant de le copier vers site2.nano /var/www/html/site1/index.html
Ensuite copier vers site2 — deux façons de faire :
cp /var/www/html/site1/index.html /var/www/html/site2/index.html
cd /var/www/html
cp site1/index.html site2/index.html
<html>
<head><title>Site 1</title></head>
<body>
<h1>Bienvenue sur Site 1</h1>
</body>
</html>
# Aller dans le dossier des sites disponibles
cd /etc/apache2/sites-available
# Créer un fichier de conf
touch site1.conf
# Vérifier la création
ls -l
# Configurer le fichier
nano site1.conf
<VirtualHost 172.17.21.92:80>
ServerAdmin webmaster@mortier.local
DocumentRoot /var/www/html/site1
ServerName site1.local
ErrorLog ${APACHE_LOG_DIR}/site1-error.log
CustomLog ${APACHE_LOG_DIR}/site1-access.log combined
</VirtualHost>
<VirtualHost 172.17.21.192:80>
ServerAdmin webmaster@mortier.local
DocumentRoot /var/www/html/site2
ServerName site2.local
ErrorLog ${APACHE_LOG_DIR}/site2-error.log
CustomLog ${APACHE_LOG_DIR}/site2-access.log combined
</VirtualHost>
# Activer les fichiers de conf
a2ensite site1.conf
a2ensite site2.conf
# Recharger Apache
systemctl reload apache2
http://<IP_site1> et http://<IP_site2>a2dissite puis a2ensite et recharger.a2dissite site1.conf site2.conf
systemctl reload apache2
cd /etc/apache2/sites-available
cp site1.conf port_vhosts.conf
nano port_vhosts.conf
# Site 1 sur port 80
<VirtualHost 192.168.1.10:80>
DocumentRoot /var/www/html/site1
ServerName site1.local
ErrorLog ${APACHE_LOG_DIR}/site1-error.log
CustomLog ${APACHE_LOG_DIR}/site1-access.log combined
</VirtualHost>
# Site 2 sur port 8080
<VirtualHost 192.168.1.10:8080>
DocumentRoot /var/www/html/site2
ServerName site2.local
ErrorLog ${APACHE_LOG_DIR}/site2-error.log
CustomLog ${APACHE_LOG_DIR}/site2-access.log combined
</VirtualHost>
cd /etc/apache2
nano ports.conf
# Ajouter ces lignes :
Listen 80
Listen 8080
a2ensite port_vhosts.conf
systemctl reload apache2
http://<IP>:80 → Site 1 · http://<IP>:8080 → Site 2site1.local) à la place d'IPs ou ports différents.a2dissite port_vhosts.conf
systemctl reload apache2
cd /etc/apache2/sites-available
cp port_vhosts.conf name_vhosts.conf
nano name_vhosts.conf
# Toute IP, port 80 — différenciation par ServerName
<VirtualHost *:80>
ServerName site1.local
DocumentRoot /var/www/html/site1
ErrorLog ${APACHE_LOG_DIR}/site1-error.log
CustomLog ${APACHE_LOG_DIR}/site1-access.log combined
</VirtualHost>
<VirtualHost *:80>
ServerName site2.local
DocumentRoot /var/www/html/site2
ErrorLog ${APACHE_LOG_DIR}/site2-error.log
CustomLog ${APACHE_LOG_DIR}/site2-access.log combined
</VirtualHost>
nano /etc/apache2/ports.conf
# S'assurer que seule cette ligne est active :
Listen 80
C:\Windows\System32\drivers\etc\hosts# Chemin : C:\Windows\System32\drivers\etc\hosts
# Ajouter ces lignes (remplacer avec l'IP de votre serveur) :
192.168.x.x site1.local
192.168.x.x site2.local
a2ensite name_vhosts.conf
systemctl reload apache2
http://site1.local et http://site2.localServerName.| Commande | Description |
|---|---|
apt install apache2 | Installe Apache2 sur le serveur |
a2ensite <fichier.conf> | Active un VirtualHost Apache2 |
a2dissite <fichier.conf> | Désactive un VirtualHost Apache2 |
systemctl reload apache2 | Recharge la configuration Apache2 |
systemctl restart apache2 | Redémarre complètement Apache2 |
systemctl status apache2 | Vérifie l'état du service Apache2 |
nano /etc/apache2/ports.conf | Modifie les ports d'écoute Apache2 |
apache2ctl configtest | Vérifie la syntaxe des fichiers de conf |
| Méthode | Différenciation | IPs | Ports | DNS requis |
|---|---|---|---|---|
| M1 — IP | Adresse IP | 2 IPs différentes | 80 | Non |
| M2 — Ports | Port TCP | 1 IP | 80 + 8080 | Non |
| M3 — DNS | ServerName (nom) | 1 IP | 80 | Oui (hosts ou DNS) |
BTS SIO SISR — Linux Debian — Apache2 Hébergement Multisite · v1.0 · 19/11/2024