Création d'un virtualhost sous apache2

03/11/2009 - 84530 consultations - 17 commentaires


Ce mini tutoriel vous présente comment créer un virtualhost apache

La création d'un virtualhost sous apache vous permet de rediriger dans un espace web particulier tout utilisateur qui voudra accéder aux pages internet d'un site comme par exemple : www.xenetis.org
Les virtualhosts deviennent intéressant dès lors que l'on héberge plusieurs sites différents sur le même serveur

Pour rappel, xenetis.org fourni un tutoriel d'installation d'apache 2.0 et PHP 5.1 à cette adresse : - Installation d'Apache 2.0 et PHP 5.1 -

Nous allons créer un fichier spécifique pour notre nouveau site /etc/apache2/sites-available/xenetis.org :
nano /etc/apache2/sites-available/xenetis.org

Puis vous y ajoutez les lignes suivantes ( en remplaçant biensûr xenetis.org par le nom de votre site) :
<VirtualHost www.xenetis.org:80>
        ServerAdmin postmaster@xenetis.org
        DocumentRoot /var/www/xenetis.org/
        CustomLog /var/log/apache2/xenetis.org.log
        LogLevel warn
</VirtualHost>
=> ServerAdmin indique le mail de l'administrateur du site
=> DocumentRoot indique le dossier où se trouvent les pages html et php du site ( la racine du site)
=> CustomLog permet d'indiquer un fichier particulier où stocker les logs du virtualhost (intéressant pour le débuggage et pour certains systèmes de statistiques comme awstats)
=> LogLevel indique le niveau de log plus ou moins volumineux selon la valeur ( debug, info, notice, warn, error, crit, alert, emerg)

Une fois que notre site est présent dans les sites disponibles (sites-available) nous allons l'ajouter dans les sites actifs (sites-enable) à l'aide d'un lien symbolique :
cd /etc/apache2/sites-enabled/
ln -s ../sites-available/xenetis.org

Une autre méthode plus simple pour activer le virtualHost :
a2ensite xenetis.org

Il ne reste plus qu'a ajouter le NameVirtualHost afin d'avoir un accès par défaut à l'IP de la machine.
Pour cela, éditez le fichier /etc/apache2/apache2.conf :
nano /etc/apache2/apache2.conf
Ajoutez cette ligne :
NameVirtualHost 111.222.333.444:80

Sauvegardez, quittez l'éditeur et relancer apache :
/etc/init.d/apache2 restart

Il ne vous reste plus qu'à créer le dossier d'hébergement, et créer un index.html :
mkdir /var/www/xenetis.org
echo "www.xenetis.org site en construction" > /var/www/xenetis.org/index.html

Commentaires (17)

revo - 03/08/2011 à 00h41
il y a une coquille :

cd /etc/apache2/sites-enabled/

Nicolo - 03/08/2011 à 10h15
Merci pour l'info, c'est corrigé ;-)

wilfrid - 14/04/2012 à 12h43
Bonjour,

avec apache2 au lien de ln -s /etc/apache2/sites-available/xenetis.org /etc/apache2/sites-enabled/xenetis.org (pour faire court ;-) )
tu peux aussi taper la commande

# a2ensite xenetis.org

Cette commande crée le lien symbolique automatiquement.

Nicolo - 16/04/2012 à 09h53
En effet c'est plus simple, je préférais indiqué la méthode du lien symbolique afin de savoir ce qu'il se passe exactement au niveau des fichiers de configuration.

J'ajoute a2ensite au tuto ;-)

Torvald - 24/07/2012 à 09h50
lol ! Bien joué l'@ IP en *.*.333.444 ^^

Nicolo - 24/07/2012 à 11h20
Eh ouais, comme ça on est sûr qu'en utilisant ce tuto on met la bonne IP, puisque celle ci ne peut pas exister ;-)

John - 20/09/2012 à 11h52
Bonjour,

En faisant cette manip, j'ai désactivé l'accès à tous les autres sites présents sur le serveur.
J'ai du tout supprimer, y compris le lien crée par a2ensite, pour rétablir l'accès aux autres sites...

Est ce que quelqu'un a une idée d'où vient le problème SVP?

Nicolo - 28/09/2012 à 14h54
Pas facile de savoir d'où cela peut venir sans plus d'infos, je t'invite à reprendre des backup, tout ne disparait comme ça sans fausse manip' ;)

John - 28/09/2012 à 15h01
Ben le truc, c'est que ça n'a pas "disparu" à proprement parlé, c'était juste désactivé. En effet, suite à la suppression de tout ce que j'avais fait (sans rien modifier d'autre), tout est rentré dans l'ordre sans recours à une sauvegarde...
Du coup, je cherche à savoir la cause pour résoudre le problème.

Nicolo - 28/09/2012 à 16h14
Il y a plusieurs hypothèses, cela peut venir d'une directive dans le dernier ton vhost qui pourrait tout surcharger ou peut etre aussi de l'ordre, en effet les fichiers dans sites-enabled sont lu par ordre alphabétique, donc un serverName présent dans 2 vhost le gagnant sera le dernier à être lu

John - 28/09/2012 à 16h20
Ok, merci pour ses pistes, je tenterai à nouveau dans peu de temps et je reviendrai poster mon retour sur cette expérimentation!

Jb - 12/01/2013 à 10h40
Fonctionne parfaitement sur un ubuntu serveur merci !

Nicolas - 13/01/2014 à 12h29
Bonjour, Merci pour tout tes tutos qui sont clairs et efficaces.

J'ai un problème de reconnaissance de mon nom de domaine avec l'ip du pc. J'ai aussi une ip fixe chez free.

Je me demande si ma réponse ne se trouve pas ici:

NameVirtualHost 111.222.333.444:80

Pourquoi tu mets cette ip "111.222.333.444:80"
Faut il que j'enregistre l'ip de mon pc, ou l'ip fixe de mon fai ou je laisse tel quel.

Merci pour ton retour avisé



Nicolo - 13/01/2014 à 17h48
Salut Nicolas,

Oui il te faut remplacer 111.222.333.444 par ton IP fixe Free, quoique maintenant la config suivante fonctionne :
NameVirtualHost *:80
Il te faudra surtout sur ta freebox rediriger le port 80 (utilisé par apache) vers l'IP local de ta machine où tu as installé apache.

Et il sera aussi préférable de mettre une IP Fixe (pas de DHCP) à ta machine locale

Plus d'info ici :
http://www.commentcamarche.net/forum/affich-20789989-serveur-web-derriere-freebox-v6

Nicolas - 13/01/2014 à 23h18
merci pour ta rapidité à me répondre. C'est sympa

Roland - 29/05/2014 à 23h59
Salut, Merci pour ce tuto très utile.
Si je peux me permettre, la fameuse adresse IP est assez perturbante. Je pense qu\'il serait bon de rajouter une ligne pour dire qu\'il faut la remplacer et dire à quoi elle sert.
La réponse se trouve dans les coms mais pour les noobs comme moi, on voit ça et on bloque, on a pas directement l\'idée d\'aller chercher plus bas.

Encore merci.

kande mamadou - 20/08/2014 à 10h43
Merci et bien fait

Commentez cet article

Nom (obligatoire)
E-mail (obligatoire)
Site Internet (facultatif)
code anti-spam

Me tenir inform� des nouveaux messages


encrypted.pngConnexion ssh sous debian sarge avec clé publique - privée
Ce tutoriel vous présente comment vous connecter sur votre serveur Linux en ssh, scp, sftp à partir de Windows avec clé publique privée
log.pngInstallation d'un systeme de monitoring MRTG (Multi Router Traffic Grapher) sous debian
Ce tutoriel a pour but d'installer l'outil de monitoring MRTG. Cet outil permet de générer des graphiques en fonction de données SNMP, ou de scripts shell.
encrypted.pngSauvegarde par ssh avec la commande scp avec clé publique - clé privée
Ce tutoriel présente comment effectuer une copie de fichier entre 2 serveurs en utilisant scp, en passant par des clé publique et clé privée afin de ne pas avoir à saisir de mot de passe
mycomputer.pngInstallation debian Sarge avec VMWare sous Ubuntu
Ce tutoriel vous présente comment installer debian Sarge dans une image virtuelle avec VMWare Player sous Ubuntu Linux
ark.pngVérification automatique des mises à jour Linux Debian avec cron-apt
Ce tutoriel vous présente comment savoir simplement quand votre serveur Linux Debian nécessite l'installation de nouvelles mises à jour avec cron-apt.
kcmdevices.pngForcer umount quand vous avez le message : device is busy sous Linux Debian
Ce mini tutoriel vous présente comment Démonter un point de montage quand celui ci ne veux pas être démonté
terminal.pngCréation d'un virtualhost sous apache2
Ce mini tutoriel vous présente comment créer un virtualhost apache
mycomputer.pngInstaller le serveur FTP Proftpd et stocker les utilisateurs dans une base de données MySQL sous Linux Debian Squeeze avec mots de passe encryptés en MD5
Ce tutoriel vous présente comment installer le serveur FTP Proftpd lié à MySQL sous Linux Debian Squeeze ainsi que la gestion de vos utilisateurs dans une table MySQL avec encryption des mots de passe en MD5
terminal.pngCommandes de base Debian et Ubuntu
Liste de commandes Linux les plus utilisées et les plus courantes sous Debian et Ubuntu avec les options qui vont biens