Utilisation des Vhosts dans WAMP

Personnellement j’ai l’habitude de créer un nom d’hôte pour chaque projet php. Wamp gère très bien les alias mais malheureusement aucunement les noms d’hôtes (vhosts). J’ai donc décidé de gérer ces vhosts de la même façon que ces alias.

Premièrement, je ne vais pas utiliser le fichier de configuration d’apache pour stoker les infos, mais un dossier exactement de la même manière que les alias. Donc il faut créer un dossier wamp/vhosts/ et y ajouter un fichier par défaut :
_localhost.conf

NameVirtualHost *:80
<VirtualHost *:80>
    DocumentRoot /internet/wamp/www
    ServerName localhost
</VirtualHost>

Il ne reste plus qu’a configurer apache lui même dans le fichier :
…\wamp\bin\apache\apache2.x.xx\conf\httpd.conf

LoadModule rewrite_module modules/mod_rewrite.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
...
# me sert pour voir si je suis en local ou en production
SetEnv PHP_SERVEUR local_intranet

Include "../../../alias/*.conf"
#inclure tous nos hotes virtuels
Include "../../../vhosts/*.conf"

Voila, normalement on n’a plus qu’a ajouter un fichier par projet dans notre dossier /wamp/vhosts/ et bien sur ne pas oublier de modifier notre fichier C:\Windows\System32\drivers\etc\host pour configurer Windows (perso j’ai créé un raccourci de ce fichier dans le dossier wamp/vhost/).

C’est bien « normalement » ça marche ! Mais il serait quand même mieux de pouvoir tester tout ça. Rien de plus rapide il suffit de modifier la page index pour inclure une liste de tous nos vhosts, c’est très simple juste une duplication du code pour les alias. Fichier :
../wamp/www/index.php

//chemin jusqu'aux fichiers vhosts
$hostsDir = '../vhosts/';
// recuperation des hosts
$hostsContents='';
if (is_dir($hostsDir))
{
    $handle=opendir($hostsDir);
    while ($file = readdir($handle)) 
    {
    if (is_file($hostsDir.$file) && strstr($file, '.conf') && (substr($file,0,1)!= '_'))
    {        
        $msg = '';
        $hostsContents .= '<li><a href="http://'.str_replace('.conf','',$file).'/">'.str_replace('.conf','',$file).'</a></li>';
    }
    }
    closedir($handle);
}
if (!isset($hostsContents))
    $hostsContents = $langues[$langue]['txtNoHosts'];
}

<h2>{$langues[$langue]['txtHosts']}</h2>
    <ul>
    ${hostsContents}            
    </ul>

Ce qui donne cet affichage.

vue de l'accueil dans wamp serveur

 

Share Button

Vous devriez aimer...