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