====== Configurer des hôtes virtuels dans Apache2 (VirtualHosts) ====== Pour publier un ou plusieurs site web avec le serveur Apache2, on configure des hôtes virtuels (ou virtual hosts). Ces hôtes virtuels sont décrits dans un fichier dédié à chaque site, dans le répertoire linux ''/etc/apache2/sites-available'' et contiennent un certain nombre de paramètres comme la page d'accueil du site, son nom d'hôte, les permissions d'accès, les pages d'erreur (403,404,500) ou encore des réglages concernant des plugins Apache. Les fichiers de configuration des hôtes virtuels doivent comporter l'extension ''.conf'' pour être interprétés par Apache. Pour activer un site web non publié, on utilisera la commande suivante, qui va alors créer un lien symbolique dans le répertoire ''/etc/apache2/sites-enabled'' à destination du fichier de configuration du site (nommé ici //site1.conf//) : a2ensite site1 A l'inverse, pour désactiver un site (le dépublier), on utilisera la commande : a2dissite site1 Pour aller plus vite, on peut aussi directement créer ses propres fichiers de configurations d'hôtes virtuels dans le répertoire ''/etc/apache2/sites-enabled'', sans avoir à utiliser les commandes ci-dessus, mais ce n'est pas recommandé ! ===== Hôte virtuel par défaut ===== A l'installation, Apache2 est fourni par défaut avec un hôte virtuel permettant de publier le contenu du répertoire ''/var/www/html/'' et ainsi d'avoir un serveur web fonctionnel pour effectuer des tests ou faire du développement web sans avoir à configurer son propre hôte virtuel. Il est stocké dans le fichier ''000-default.conf'' de ''/etc/apache2/sites-available''. Voici son contenu : # Adresse IP et port TCP pour accèder au site (* signifie que toutes les adresses IP du serveur sont utilisées) ServerAdmin webmaster@localhost # adresse mail de l'administrateur du site DocumentRoot /var/www/html # page d'accueil ou répertoire de la page d'accueil du site ErrorLog ${APACHE_LOG_DIR}/error.log # fichier log où sont écrites les erreurs qui se produisent avec le site CustomLog ${APACHE_LOG_DIR}/access.log combined #