Magazine Internet

Héberger plusieurs sites sur son serveur : Virtual Hosts

Publié le 10 mars 2008 par Starkhay

Lorsqu’un seul site est à héberger sur son serveur, il suffit de faire pointer le nom de domaine sur son IP. Mais comment faire pour héberger plusieurs sites sur son serveur ? Plusieurs noms de domaines pointant sur la même adresse IP causeront un méli-mélo si rien n’est fait au niveau de la configuration du serveur Apache2. La solution s’appelle les Virtual Hosts.

Héberger plusieurs sites sur son serveur : Virtual Hosts Crédit photo: redhatmag / Flicker.com 

Les Virtual Hosts sont des fichiers de configuration d’Apache2 qui indiquent au serveur où faire pointer la demande du nom de domaine qu’il reçoit.

Différents types de Virtual Hosts

  • basé sur le nom de domaine : le serveur va rediriger les demandes en fonction du nom de domaine recherché
  • basé sur l’IP : le serveur va rediriger les demandes en fonction de l’adresse Ip recherchée

Le port d’écoute peut également être associé à l’une ou l’autre de ces méthodes permettant ainsi des configurations plus poussées. Le but étant de faire quelque chose de simple, nous allons nous limiter à l’étude des Virtual Hosts basés sur les noms de domaines.

Un site = un Virtual Host

Apache2 va rechercher les Virtual Hosts dans /etc/apache2/sites-available/ et /etc/apache2/sites-enabled/. Le 1er répertoire contenant réellement le fichier Virtual Host et le second contenant le lien symbolique au fichier.

Attention : sous Apache1, la manière de gérer les Virtual Hosts est différente, ceci ne s’applique qu’à Apache2.

Avec l’aide de Winscp dont je parlais dans ce billet (ou de tout éditeur et/ou client FTP), nous allons créé un fichier « mon_site » dans /etc/apache2/sites-available/ . Le nom du fichier importe peu, cependant il sera plus facile de se souvenir de ce qu’il contient si vous lui donnez le nom de votre site ou du moins un nom sans équivoque.

Exemple de Virtual Host (à modifier bien sûr) :

NameVirtualHost www.monnomdedomaine.tld
<VirtualHost www.monnomdedomaine.tld>
ServerAdmin admin@mail.com
DocumentRoot /var/www/monrepertoire/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/monrepertoire/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>

Explications des directives du Virtual Host

NameVirtualHost www.monnomdedomaine.tld qui ne pourra se trouver que dans un seul Virtual Host définit le site par défaut.

<VirtualHost www.monnomdedomaine.tld> est le nom de domaine à surveiller.

ServerAdmin admin@mail.com renseigne l’email inscrit dans les messages d’erreur envoyés au client du serveur.

DocumentRoot /var/www/monrepertoire/ est la racine de votre site.

<Directory /var/www/monrepertoire/> est le répertoire où se trouve les fichiers de votre site (semblable à DocumentRoot).

La directive Options indique ce qui est autorisé dans le répertoire :

  • Indexes permet de lister le répertoire si aucun fichier prédéfini du style de index.html ou autre n’est présent.
  • FollowSymLinks permet de suivre les liens symboliques présent dans le répertoire (utile par exemple quand on a mis un lien pour accéder à son gestionnaire de base de données).
  • Multiviews permet l’affichage dans la langue du navigateur.

AllowOverride valorisé à None passe outre le .htaccess, donc ce n’est pas forcément utile (selon les besoins de chacun)

Order définit l’ordre de lecture des droits
Allow from all permet que le serveur soit accessible de partout.

Si vous désirez des précisions complémentaires, vous pouvez vous référer à la documentation officielle d’Apache 2.

L’activation du Virtual Host

Une fois le fichier créé, il faut l’activer en créant le lien symbolique dans le répertoire /etc/apache2/sites-enabled/. Cela permet au serveur de savoir que le site est actif.

Pour réaliser cette opération, il suffit de taper en ligne de commande a2ensite suivi du nom du fichier préalablement créé, donc ici ce sera a2ensite mon_site .

Si vous désirez désactiver votre site (pour une maintenance par exemple), la commande inverse est a2dissite . Donc a2dissite mon_site .

Le lien étant établi, il ne reste plus alors qu’à relancer le serveur Apache avec la commande : /etc/init.d/apache2 restart .

Une fois le 1er fichier créé, il sera possible de répéter l’ensemble des opérations pour chacun de vos sites hébergés sur votre serveur. C’est relativement simple mais si vous avez des difficultés, n’hésitez pas à demander.

Crédit photo :  Rodolphe Clox/Stock Exchange

 

Héberger plusieurs sites sur son serveur : Virtual Hosts

 
Héberger plusieurs sites sur son serveur : Virtual Hosts


Retour à La Une de Logo Paperblog

A propos de l’auteur


Starkhay 2 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte