Avant-propos

Tout le monde sait qu'à l'installation d'Apache, il nous faut spécifier un nom d'hôte.
Mais savez-vous qu'il est possible de créer plusieurs hôtes ?
C'est ce qu'on appelle les Virtual Host.

Le fichier vhost.conf

Nous allons donc stopper Apache durant notre toute notre manoeuvre.
Une fois Apache stoppé, rendez vous dans le répertoire de configuration d'Apache. Nous allons créer un nouveau fichier de configuration pour y intégrer notre nouveau Virtual Host.
Nous pourrions bien sûr l'intégrer directement dans le httpd.conf mais celà est beaucoup plus pratique d'avoir un fichier bien distinct vu que les includes fonctionnent très bien sous Apache.
Personnellement, j'ai un fichier pour chaque chose chez moi; un php.conf, un alias.conf, un error.conf, etc... ;) Nous nommerons donc ce fichier vhost.conf.
Voici les lignes à intégrer dans le fichier vhost.conf :

NameVirtualHost www.mon-domaine2.joe Ici, on nomme notre Virtual Host.
< VirtualHost www.mon-domaine2.joe > La même chose ici.
Vous pouvez aussi rajouter le port comme ceci
www.mon-domaine2.joe:80
ServerAdmin mon-email@domaine.com Vous avez compris qu'il faut que vous entriez votre email ici !
Bien sûr cette adresse peut être différente de celle de votre premier domaine (www.mon-domaine.joe). C'est d'ailleurs un des intérêts du Virtual Host.
DocumentRoot H:/home/www/domaine2/ Entrez ici le chemin complet jusqu'au répertoire de votre site www.mon-domaine2.joe
Logiquement ce n'est pas le même que votre premier site.
ServerName www.mon-domaine2.joe Rien de neuf, on entre le nom du Virtual Host comme nom de Serveur.
ErrorLog logs/www.mon-domaine2.joe-error_log Un petit plus sympathique ;)
Pour plus de lisibilité, on stocke les erreurs dans un autre fichier que le premier site.
Vous pouvez nommez ce fichier comme bon vous semble.
TransferLog logs/www.mon-domaine2.joe-access_log La même chose qu'au dessus, sauf que là c'est pas pour les erreurs :D
< /VirtualHost > On ferme la configuration de ce Virtual Host comme on fermerait un TAG en HTML.

Une fois que notre vhost.conf est prêt, nous pouvons l'inclure dans le fichier httpd.conf afin qu'Apache le prenne en compte.
Nous allons donc ouvrir un httpd.conf et rajouter, en bas de préférence pour y accéder plus facilement, la ligne :
Include conf/vhost.conf

Vous pensez que c'est le moment de redémarrer Apache et de voir ce que ça donne tout ça ?
Et bien détrompez vous, nous n'en sommes qu'à la moitié :D !

Le fichier hosts

La seconde Étape est le fichier hosts de Windows.
Direction C:\WINDOWS\system32\drivers\etc\, le bon fichier est hosts (voir note ci dessous).

Note : Le fichier hosts peut se trouver dans un répertoire différent sur certaines configurations. Vous pouvez chercher dans C:\WINDOWS\, C:\WINDOWS\system32\, C:\WINDOWS\system\ ou dans tout autre répertoire système de WINDOWS Le fichier peut comporter une extension (par exemple hosts.sam). La casse peut aussi changer. (hosts ou Hosts)

Je vous conseille fortement de faire un raccourci sur votre bureau, si vous pensez ajouter plusieurs Virtual Host.
Une fois ce fichier ouvert, vous pourrez voir ceci :

 
Sélectionnez

# Copyright (c) 1993-1999 Microsoft Corp.
#
# Ceci est un exemple de fichier HOSTS utilisé par Microsoft TCP/IP
# pour Windows.
#
# Ce fichier contient les correspondances des adresses IP aux noms d'hôtes.
# Chaque entrée doit être sur une ligne propre. L'adresse IP doit être placée
# dans la première colonne, suivie par le nom d'hôte correspondant. L'adresse
# IP et le nom d'hôte doivent être séparés par au moins un espace.
#
# De plus, des commentaires (tels que celui-ci) peuvent être insérés sur des
# lignes propres ou après le nom d'ordinateur. Ils sont indiqué par le
# symbole '#'.
#
# Par exemple :
#
# 102.54.94.97 rhino.acme.com # serveur source
# 38.25.63.10 x.acme.com # hôte client x
127.0.0.1 localhost

Deux possibilités s'offrent à vous :

  1. Soit vous êtes le seul PC et vous ne disposez pas de réseau donc pas besoin de prévoir qu'une autre machine puisse accéder à www.mon-domaine2.joe
  2. Soit vous êtes sur un réseau et vous trouvez ça intéressant de faire plusieurs sites Intranet accessibles facilement par www.le-domaine.joe au lieu de http://192.168.0.123/site-que-je-veux-voir/

Dans le cas 1.
Il suffit de rajouter la ligne :
127.0.0.1 www.mon-domaine2.joe

Dans le cas 2.
Il faut que vous rajoutiez l'adresse IP que vous avez sur votre réseau. Pour l'exemple, 192.168.0.123.
Il suffit alors de rajouter la ligne :
192.168.0.123 www.mon-domaine2.joe

Vous pouvez, bien entendu, rajouter autant de lignes que vous le souhaitez avec la même IP et un " domaine différent "

Au final notre fichier hosts donnera ceci :

  • pour le cas 1

     
    Sélectionnez
    
    # Copyright (c) 1993-1999 Microsoft Corp.
    #
    # Ceci est un exemple de fichier HOSTS utilisé par Microsoft TCP/IP
    # pour Windows.
    #
    # Ce fichier contient les correspondances des adresses IP aux noms d'hôtes.
    # Chaque entrée doit être sur une ligne propre. L'adresse IP doit être placée
    # dans la première colonne, suivie par le nom d'hôte correspondant. L'adresse
    # IP et le nom d'hôte doivent être séparés par au moins un espace.
    #
    # De plus, des commentaires (tels que celui-ci) peuvent être insérés sur des
    # lignes propres ou après le nom d'ordinateur. Ils sont indiqué par le
    # symbole '#'.
    #
    # Par exemple :
    #
    # 102.54.94.97 rhino.acme.com # serveur source
    # 38.25.63.10 x.acme.com # hôte client x
    127.0.0.1    localhost
    127.0.0.1    www.mon-domaine2.joe
    
  • pour le cas 2

     
    Sélectionnez
    
    # Copyright (c) 1993-1999 Microsoft Corp.
    #
    # Ceci est un exemple de fichier HOSTS utilisé par Microsoft TCP/IP
    # pour Windows.
    #
    # Ce fichier contient les correspondances des adresses IP aux noms d'hôtes.
    # Chaque entrée doit être sur une ligne propre. L'adresse IP doit être placée
    # dans la première colonne, suivie par le nom d'hôte correspondant. L'adresse
    # IP et le nom d'hôte doivent être séparés par au moins un espace.
    #
    # De plus, des commentaires (tels que celui-ci) peuvent être insérés sur des
    # lignes propres ou après le nom d'ordinateur. Ils sont indiqué par le
    # symbole '#'.
    #
    # Par exemple :
    #
    # 102.54.94.97 rhino.acme.com # serveur source
    # 38.25.63.10 x.acme.com # hôte client x
    127.0.0.1        localhost
    192.168.0.123    www.mon-domaine2.joe
    

Une fois celà fait, on sauvegarde le fichier hosts et on redémarre Apache, enfin !

On teste l'adresse www.mon-domaine2.joe et ..... Ooooh miracle ça marche !
Dans le cas contraire, reprenez depuis le début, vous avez du sûrement rater une étape !

Une fois que vous avez bien compris comment celà fonctionne, vous pouvez vous amusez à faire des Sub-Domains du genre forum.mondomaine.joe qui pointe en fait sur un sous-répertoire !

Comme je suis bon et généreux, je vous donne même en prime la possibilité de télécharger le hosts et le vhost.conf de ce tutoriel !

Les deux fichiers zippés

J'aimerais profiter de cette occasion pour dire publiquement :

LONGUE VIE À DEVELOPPEZ.COM !

Et un grand merci à toutes les personnes qui s'investissent dans cette communauté.