Choses à faire

24h dans une journée, et tant de choses à faire !

Héberger facilement plusieurs sites avec Apache

publié le 20 septembre 2009 par Pierre Quillery

Bien que la question soit finalement assez simple, la documentation officielle sur laquelle je suis tombé m’a semblé particulièrement obscure …

Voilà donc la version courte si vous souhaitez comme moi héberger plusieurs sites sur votre serveur dédié sans pour autant avoir de diplôme en administration système.

Tout d’abord, précisons que ce que j’indique correspond à un environnement Debian (Ubuntu Server, plus précisément), ce qui explique que les chemins pourront varier suivant votre distribution. La démarche, elle, reste bien entendu la même. Tout d’abord, il nous faut installer le paquet apache2, ce qui est fait avec la commande suivante :

sudo aptitude install apache2

Maintenant que le paquet est installé, le serveur devrait avoir démarré automatiquement, avec les paramètres par défaut.Ainsi, si vous utilisez un des noms de domaines que vous avez précédemment fait pointer sur votre serveur, vous devriez avoir droit à l’écran classique « It Works! » qui indique qu’Apache fonctionne.

À ce stade, précisons deux choses que vous aurez besoin de comprendre pour la suite :

  • Les sites configurés dans apache se trouvent dans le répertoire /etc/apache2/sites-available. Ceux qui sont « activés » sont placés automatiquement dans le répertoire voisin /etc/apache2/sites-enabled. Vous éditerez donc les fichiers de configuration dans le premier répertoire, un par site que vous souhaitez héberger.
  • Les commandes a2ensite et a2dissite vous permettent respectivement d’activer et de désactiver un site placer dans le repertoire sites-available que nous avons vu précédement. Concrètement, elles vont simplement créer ou supprimer un lien symbolique dans le répertoire des sites-enabled, suivant le cas.

C’est le fichier de configuration default placé dans le répertoire /etc/apache2/sites-available qui se charge d’afficher cette page par défaut, nous allons donc commencer par utiliser la commande a2dissite pour le désactiver afin qu’il n’interfère pas sur les autres sites que nous ajouterons :

sudo a2dissite default

Suite à cette commande, Apache va indiquer qu’il nous faut recharger la configuration pour que ces modifications soient prises en compte. Nous le ferons plus tard, rien ne presse ! Pour info, les fichiers de notre site se trouvent arbitrairement dans le répertoire /var/www/blog1 et le nom de domaine que je souhaite utiliser et qui pointe sur mon serveur est blog1.com. Nous allons nommer ce fichier blog1 et le placer simplement dans le répertoires des sites-available.

Éditez ensuite à l’aide de votre éditeur favori et copiez le contenu suivant en l’adaptant à vos besoins :

<VirtualHost *>
  DocumentRoot /var/www/blog1 # Remplacez ce chemin par celui qui mène à vos fichiers
  ServerName blog1.com # Remplissez au moins une directive ServerName suivant votre nom de domaine
  ServerAlias www.blog1.com # ... Ajoutez des alias à votre convenance, c'est facultatif
</VirtualHost>

Sauvegardez le fichier, vous êtes presque au bout de vos peine : reste à activer le site ainsi créé :

sudo a2ensite blog1

Rechargez maintenant la configuration d’Apache afin qu’il prenne le site nouvellement ajouté en compte :

sudo /etc/init.d/apache2 reload

Testez maintenant : le domaine blog1.com devrait effectivement pointer vers le répertoire que vous avez spécifié. Aucun autre nom de domaine ne devrait vous permettre d’accéder à ces données. Pour ajouter de nouveaux sites, il ne vous reste plus … qu’à recommencer le tout autant de fois que vous en avez besoin 🙂 ! Créez un fichier dans les sites-available, activez le puis rechargez la configuration.

En cas de problème, voilà quelques pistes qui pourront vous dépanner :

  • Attention aux erreurs de syntaxe dans le fichier de configuration : si Apache râle quand vous rechargez la configuration, il y a des chances qu’une coquille s’y soit glissée !
  • Le répertoire sur lequel vous pointez doit impérativement exister sur votre arborescence et être accessible en lecture pour Apache (en étant lisible par tous ou en appartenant au groupe www-data etc.).
  • Il faut compter un certain temps entre le moment où vous créez un domaine ou un sous domaine, et le moment où il va effectivement pointer vers votre serveur (le temps que l’information se répercute dans tous les DNS) … N’hésitez pas à utiliser la commande ping pour vous assurer que votre nom de domaine est bien résolu sur l’IP de votre serveur.

Les textes, illustrations et démonstrations présents sur ce site sont la propriété de leurs auteurs respectifs, sauf mention contraire (photo de la bannière).
Chosesafaire.fr, un site propulsé par Wordpress, vous est proposé par Pierre Quillery & Killian Ebel.

Valid XHTML 1.0 Strict