Objectifs
Installer Apache sur Ubuntu 22.04, puis mettre en place un VirtualHost par nom, par IP et par port. Il faut une machine Ubuntu 22.04, une connexion internet et les privilèges root.
Installation
sudo apt update
sudo apt install apache2
Les quatre étapes, identiques pour chaque site
# 1. dossier du site et droits
sudo mkdir -p /var/www/espritN.com/public_html
sudo chown -R $USER:$USER /var/www/espritN.com/public_html
sudo chmod -R 755 /var/www
# 2. page de test
sudo gedit /var/www/espritN.com/public_html/index.html
# 3. fichier de site, copié depuis celui par défaut
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/espritN.com.conf
sudo gedit /etc/apache2/sites-available/espritN.com.conf
# 4. activation puis rechargement
sudo a2ensite espritN.com.conf
sudo a2dissite 000-default.conf
systemctl reload apache2
Sans DNS, chaque nom doit aussi être résolu localement dans /etc/hosts :
192.168.200.132 www.espritN.com
Le fichier de site
<VirtualHost IP:PORT>
ServerName www.espritN.com
ServerAdmin admin@espritN.com
DocumentRoot /var/www/espritN.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
IP est l’adresse IPv4 de l’interface ens33, celle qu’affiche ifconfig.
Ce qui change d’une technique à l’autre
Seules la première ligne du fichier de site et une éventuelle préparation changent :
| Technique | Préparation | Première ligne | Test |
|---|---|---|---|
| Par nom | aucune | <VirtualHost 192.168.200.132:80>, un ServerName par site | www.esprit1.com |
| Par IP | sudo ifconfig ens33:1 192.168.200.133/24 | <VirtualHost 192.168.200.133:80> | www.esprit3.com |
| Par port | Listen 8080 dans /etc/apache2/ports.conf | <VirtualHost 192.168.200.132:8080> | www.esprit4.com:8080 |
L’alias ens33:1 ajoute une deuxième adresse sur la même carte réseau :
sudo ifconfig ens33:1 192.168.200.133/24
ifconfig
ifconfig montre alors 192.168.200.132 sur ens33 et 192.168.200.133 sur ens33:1, les deux portées par le même matériel.
Une page servie affiche son propre message, par exemple Success! The esprit1.com virtual host is working!