Apache : Les Virtual Hosts
Table des matières
Votre serveur ne dispose que d'une seule adresse IP, et de nombreux alias (CNAMES) pointent vers cette adresse dans le DNS. Pour l'exemple, dev.linuxtricks.fr et marjo21.linuxtricks.fr doivent tourner sur cette machine mais dans 2 racines de sites différents.
D'abord, s'assurer que dans le fichier httpd.conf on ait une ligne de ce style :
Grâce à cette ligne, on inclura tous les .conf de /etc/apache2/vhosts.d/
Vous l'aurez compris, tous mes "virtual hosts" vont être des fichiers du style xxx.conf dans /etc/apache2/vhosts.d/
Voici l'exemple de mon site de développement : dev.linuxtricks.fr
Pour me repérer facilement, le fichier est nomdedomaine.conf :
Et le deuxième :
Je reprends mon fichier précédent et vais expliquer les lignes du "Virtual Host" :
Introduction
Votre serveur ne dispose que d'une seule adresse IP, et de nombreux alias (CNAMES) pointent vers cette adresse dans le DNS. Pour l'exemple, dev.linuxtricks.fr et marjo21.linuxtricks.fr doivent tourner sur cette machine mais dans 2 racines de sites différents.
Configurer httpd.conf
D'abord, s'assurer que dans le fichier httpd.conf on ait une ligne de ce style :
Code BASH :
Include /etc/apache2/vhosts.d/*.conf
Grâce à cette ligne, on inclura tous les .conf de /etc/apache2/vhosts.d/
Vous l'aurez compris, tous mes "virtual hosts" vont être des fichiers du style xxx.conf dans /etc/apache2/vhosts.d/
Création des Virtual Hosts
Voici l'exemple de mon site de développement : dev.linuxtricks.fr
Pour me repérer facilement, le fichier est nomdedomaine.conf :
Code BASH :
vi /etc/apache2/vhosts.d/dev.linuxtricks.conf
Code BASH :
<VirtualHost *:80> ServerName dev.linuxtricks.fr ServerAlias dev.linuxtricks.fr ServerAdmin adrien@domaine.fr ErrorLog /var/log/apache2/dev.linuxtricks.fr-error_log TransferLog /var/log/apache2/dev.linuxtricks.fr-access_log DocumentRoot "/var/www/localhost/htdocs/dev/" <Directory "/var/www/localhost/htdocs/dev/"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost>
Et le deuxième :
Code BASH :
vi /etc/apache2/vhosts.d/marjo21.linuxtricks.conf
Code BASH :
<VirtualHost *:80> ServerName marjo21.linuxtricks.fr ServerAlias marjo21.linuxtricks.fr ServerAdmin adrien@domaine.fr ErrorLog /var/log/apache2/marjo21.linuxtricks.fr-error_log TransferLog /var/log/apache2/marjo21.linuxtricks.fr-access_log DocumentRoot "/var/www/localhost/htdocs/marjo21/" <Directory "/var/www/localhost/htdocs/marjo21/"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost>
Explications
Je reprends mon fichier précédent et vais expliquer les lignes du "Virtual Host" :
Code BASH :
<VirtualHost *:80> # Virtualhost écoutant sur le port 80 ServerName dev.linuxtricks.fr # Nom du serveur auquel le vhost doit répondre ServerAlias dev.linuxtricks.fr # Eventuel alias supplémentaire ServerAdmin adrien@domaine.fr # Mail du webmaster ErrorLog /var/log/apache2/dev.linuxtricks.fr-error_log # Délocaliser pour ce vhost les logs d'erreur TransferLog /var/log/apache2/dev.linuxtricks.fr-access_log # Délocaliser pour ce vhost les logs d'accès DocumentRoot "/var/www/localhost/htdocs/dev/" # Racile des fichiers du site <Directory "/var/www/localhost/htdocs/dev/"> #Définition des droits d'un répertoire Options Indexes FollowSymLinks # Options choisies AllowOverride All # Require all granted # On autorise tout le monde (pour refuser : Require all denied) </Directory> # Fin de la définition des droits </VirtualHost> # Fin de la définition du vhost