La première étape et de signaler à votre système d'exploitation que vous allez assigner des noms de domaine au réseau interne (localhost). C'est en gros une sorte de DNS.

Sous Windows allez dans le répertoire C:\Windows\System32\drivers\etc et ouvrez le fichier hosts. Sous Linux cherchez dans Google ;-)

Le contenu doit être le suivant:

# 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

A la fin de ce fichier vous devez rajouter les noms que vous voulez utiliser. Vous pouvez les mettre à la suite ou sur des lignes différentes:

# Copyright (c) 1993-2006 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

127.0.0.1       localhost
127.0.0.1       phareperdu.localhost myverbs.localhost

D'après cet exemple, je vais avoir accès aux domaines phareperdu.localhost, myverbs.localhost et sql.localhost depuis l'adresse IP 127.0.0.1, c'est à dire la boucle locale. Si on veut, on aurait aussi pu rediriger phareperdu.free.fr, google.fr, ça peut être amusant si vous voulez faire une blague à vos proches... Mais c'est pas très pratique dans on veut accéder à ces sites.

Ensuite il va falloir aller trifouiller dans les entrailles d'apache: Dans le fichier de configuration d'apache httpd.conf, décommentez la ligne

# Virtual hosts
#Include conf/extra/httpd-vhosts.conf

en enlevant le "#":

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

Si cette ligne n'existe pas vous pouvez la créer.

Puis ouvrez le fichier conf/extra/httpd-vhosts.conf. Il existe dès le départ sous easyPHP et Xampp. S'il n'existe pas vous pouvez le créer.

Insérez les hôtes virtuels dont vous avez besoin. Vous pouvez vous inspirer des exemples qui sont dans le fichier. En voici un autre:

 NameVirtualHost *:80
 
<VirtualHost *:80>
	ServerName phareperdu.localhost
	ServerAdmin phareperdu@localhost
	DocumentRoot "C:\Users\Cyril\Documents\Mes sites web\Phare perdu\phareperdu.free.fr"
	<Directory "C:\Users\Cyril\Documents\Mes sites web\Phare perdu\phareperdu.free.fr">
			Allow from all
	</Directory>
</VirtualHost>

<VirtualHost *:80>
	ServerName myverbs.localhost
	ServerAdmin myverbs@localhost
	DocumentRoot "C:\Users\Cyril\Documents\Mes sites web\MyVerbs\myverbs.free.fr"
	<Directory "C:\Users\Cyril\Documents\Mes sites web\MyVerbs\myverbs.free.fr">
			Allow from all
	</Directory>
</VirtualHost>

ServerName correspond au nom du domaine appelé. Il doit être identique à celui que vous avez mis dans votre fichier hosts de Windows..
ServerAdmin n'est pas très important. C'est l'adresse mail de l'administrateur.
DocumentRoot est le chemin de votre site correspondant au domaine..
Vous devez aussi donner les droits au répertoire DocumentRoot, sans quoi un message Erreur 403: Forbidden va s'afficher (notamment sous easyPHP, mais pas sous Xampp). C'est le paragraphe Directory qui s'en charge. N'oubliez pas de décommenter la ligne NameVirtualHost *:80 si ce n'est pas le cas.

Maintenant redémarrez apache et si vous tapez phareperdu.localhost ou myverbs.localhost comme pour moi dans l'exemple vous aurez accès au site voulu!

Aussi une astuce si vous êtes chez free: cet hébergeur ne regarde pas l'adresse du serveur MySQL. Vous pouvez donc mettre localhost et ça marche toujours. Pour ne pas avoir à changer les fichiers de configuration entre le test local et le serveur vous pouvez créer un nouvel utilisateur dans la base de donnée portant votre nom d'utilisateur et votre mot de passe.
Je viens de le faire et ça marche très bien!

J'espère que tout est clair. C'était un tutoriel un peu rapide mais qui va à l'essentiel pour que ça fonctionne tout de suite. Libre à vous de paramétrer plus en profondeur votre serveur apache.