Créer un hôte virtuel
Création d'un hôte virtuel
Apache recommande de créer un fichier de configuration dans lequel est défini un hôte virtuel pour chaque site ou application web dans le répertoire
/etc/apache2/sites-available/.
Chaque hôte virtuel peut être appelé en fonction d'un nom de domaine ou sous-domaine, c'est la configuration la plus courante. Mais on peut également définir un numéro de port particulier, ou une adresse IP particulière (si le serveur en possède plusieurs) pour laquelle on affichera tel ou tel contenu web.
Chaque hôte virtuel ayant son fichier de configuration dédié, pour s'y repérer on peut le nommer par le nom de domaine auquel il correspond, suivi de l'extension
.conf. Pour un nom de domaine example.com on créera donc un fichier
/etc/apache2/sites-available/example.com.conf.
sudo nano /etc/apache2/sites-available/exemple.com.conf
Voici un exemple de contenu pour ce fichier :
example.com.conf
ServerName example.com
ServerAlias www.example.com
DocumentRoot "/var/www/example"
Options +FollowSymLinks
AllowOverride all
Require all granted
ErrorLog /var/log/apache2/error.example.com.log
CustomLog /var/log/apache2/access.example.com.log combined
Explication du fichier de configuration :
directive
description
On accepte les connexions sur n'importe quelle IP du serveur (
*) sur le port 80.
ServerName example.com
Cet hôte virtuel sera seulement appelé pour le nom de domaine example.com…
ServerAlias www.example.com
…ainsi que pour le sous-domaine www.example.com. On peut spécifier ici d'autres noms de domaine en les séparant par un espace. On peut aussi utiliser *.example.com pour inclure tous les sous-domaines.
DocumentRoot "/var/www/example"
On placera les fichiers du site dans le répertoire
/var/www/example.
On spécifie dans cette section des règles pour le répertoire
/var/www/example sous cet hôte virtuel.
Options +FollowSymLinks
Apache suivra les liens symboliques qu'il trouvera dans ce répertoire (et ses descendants).
AllowOverride all
On pourra inclure une configuration personnalisée via un fichier .htaccess.
Require all granted
Tous les visiteurs pourront accéder au contenu de ce répertoire. Voir la documentation officielle pour modifier ce comportement. Pour des raisons de sécurité ou de privacité on peut par exemple limiter l'accès au serveur à seulement une ou certaines adresses IP avec une directive du type
Require ip 192.168.1.10.
ErrorLog /var/log/apache2/error.example.com.log
CustomLog /var/log/apache2/access.example.com.log combined
Il est pratique d'avoir des logs séparés pour chaque hôte virtuel, afin de ne pas mélanger toutes les informations.
Vérifier la configuration
Avec Apache2 il est possible de vérifier si la configuration des hôtes virtuels sont correctement écrite. Il suffit d’exécuter la commande suivante :
sudo apachectl configtest
Dans le cas ou tout est bon l'invite de commande devra vous retourner le message suivant :
Syntax OK
Déployer le nouveau site
Après avoir l'avoir créée l'hôte virtuel, il faut activer cette configuration avec la commande
sudo a2ensite .
sudo a2ensite example.com
On recharge ensuite la configuration d'Apache :
sudo systemctl reload apache2