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/
Code BASH :
Sur CentOS le fichier se trouve dans[b] /etc/httpd/conf/httpd.conf[/b]. On peut placer les vhosts dans un dossier conf aussi en vérifiant la ligne [b]Include conf/vhost.conf[/b]
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 Order allow,deny Allow from all </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 Order allow,deny Allow from all </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 # Order allow,deny #ordre d'accès Allow from all # On autorise tout le monde </Directory> # Fin de la définition des droits </VirtualHost> # Fin de la définition du vhost