Création d'un virtualhost sous apache2

03/11/2009 - 84672 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


mail_generic.pngProblème à l'installation d'Exim4 : Could not perform immediate configuration on 'exim4-daemon-light'. sous Linux Debian
Il peut arriver que vous rencontriez un problème lors de l'installation d'Exim4, une erreur du style : Could not perform immediate configuration on 'exim4-daemon-light'.
terminal.pngInstallation d'Apache 2.0 et PHP 5.1
Tutoriel d'installation d'Apache 2.0 et PHP 5.1 sous Debian Sarge à partir des paquets backports.org
terminal.pngServeur ftp proftpd avec utilisateurs virtuels sous linux debian ubuntu
Ce tutoriel vous présente comment installer le serveur ftp proftpd à partir des paquets debian. Pour éviter de créer autant d'utilisateurs Linux que de compte FTP il est possible de créer des utilisateurs virtuels seulement disponibles pour le serveur FTP
cdcopy.pngMettre à jour debian etch 4.0 vers debian lenny 5.0
Ce mini tutoriel vous explique comment mettre à jour votre distribution stable debian de etch 4.0 à lenny 5.0
mail_generic.pngSSMTP Serveur smtp simple pour envoyer ses mails de son serveur local par le smtp de son FAI sur debian lenny
Ce petit tutoriel vous présente comment configurer rapidement un smtp sur son serveur debian lenny afin de pouvoir envoyer des mail par l'intermédiaire du smtp de son fournisseur d'accès internet
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é
mycomputer.pngMise à jour de votre distribution Linux Debian 5.0 Lenny à Linux Debian 6.0 Squeeze
Ce tutoriel vous indique comment mettre à jour votre distribution Linux Debian 5.0 Lenny à Linux Debian 6.0 Squeeze
mycomputer.pngOutils intéressants sous Linux
Voici quelques outils intéressants pour vous faciliter la vie sous Linux : nmap, nslookup
database.pngInstallation MySQL 5 sous Debian Etch et Lenny
Tutoriel d'installation de MySQL 5 sous Debian Etch et Lenny à partir des paquets officiels