Configurer des Virtual Host avec Apache sous Windows

Joe l'Indien

Dans ce tutoriel nous allons voir comment « héberger » plusieurs Virtual Host, donc sites, sur le même serveur. ♪

- Titre : Configurer des Virtual Host avec Apache sous Windows

- Auteur : Joe l'Indien

- Parution : 10 novembre 2003

- Licence : Copyright ® 2003 Joe l'indien. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- Avant-propos

- Le fichier vhost.conf

- Le fichier hosts

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 manœuvre.
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 cela 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 nommer ce fichier comme bon vous semble.

TransferLog

logs/www.mon-domaine2.joe-access_log

La même chose qu'au-dessus, sauf que là ce n’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 :

# 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és 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 »

Finalement notre fichier hosts donnera ceci :

- pour le cas 1

# 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és 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

# 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és 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 cela 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 dû sûrement rater une étape !

Une fois que vous avez bien compris comment cela fonctionne, vous pouvez vous amuser à 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é.