Création d'un virtualhost sous apache2

03/11/2009 - 86413 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.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
encrypted.pngConnexion ssh sous debian etch et lenny avec clé publique - privée
Ce tutoriel vous présente comment vous connecter sur votre serveur Debian (Etch et Lenny) en ssh, scp, sftp à partir de Windows avec clé publique privée (sans avoir à taper de mot de passe)
java.pngInstallation Tomcat et JDK de Sun
Tutoriel d'installation de Tomcat sous Debian avec la jdk de Sun à partir des packages Sun et Tomcat dernières version stable
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
kcmdevices.pngInstaller et formater un disque dur externe usb sous Linux Debian Etch
Ce tutoriel vous présente comment installer votre dique usb sous Linux debian de l'installation en passant par le formatage jusqu'au montage dans votre système de fichier
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
database.pngTutoriel de sauvegarde automatisées de bases de données MySQL, compression en tar.gz et envoi par FTP sous Linux Debian
Ce tutoriel vous présente comment automatiser la sauvegarde de base de données MySQL en compressant les sauvegardes et en les plaçant sur un FTP distant.
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.pngVider la mémoire cache d'un serveur Linux Debian
Ce tutoriel vous présente comment récupérer la mémoire cache alouée mais non utilisée par le système afin de la rendre disponible aux processus qui en ont besoin.