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
-
<VirtualHost *:80> ServerName example.com ServerAlias www.example.com DocumentRoot "/var/www/example" <Directory "/var/www/example"> Options +FollowSymLinks AllowOverride all Require all granted </Directory> ErrorLog /var/log/apache2/error.example.com.log CustomLog /var/log/apache2/access.example.com.log combined </VirtualHost>
Explication du fichier de configuration :
| directive | description |
|---|---|
<VirtualHost *:80> |
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. |
<Directory "/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 <hostname>.
sudo a2ensite example.com
On recharge ensuite la configuration d'Apache :
sudo systemctl reload apache2
No comments to display
No comments to display