Ce sujet a sans doute déjà été débattu ici, mais comme j'ai été confronté au problème, voici comment j'ai fait pour que sous Wamp5, mes différents sites soient vus de manière similaire en local et en distant - c'est-à-dire pour que les différentes variables, par exemple :
Les contenus de droite de chaque ligne étant les exacte copies des noms des dossiers des sites locaux situés dans G:\Wamp\www\
Nota : Il est impératif que les noms des dossiers des sites locaux soient différents des noms des sites réels.
- 2 - Ouvrir le fichier Wamp\Apache\Conf\httpd.conf et, à partir de la ligne : # Use name-based virtual hosting. ajouter (ou modifier) le texte suivant :
Nota : ServerName localhost doit être en premier et l'ordre correspondre à celui du fichier Hosts.
À partir de ces modifications, si on lance Wampserver et que dans le navigateur on lance un site local, par exemple [aviatechno] (le "/" final est obligatoire), on ouvrira bien le site local.
En revanche, si on lance Localhost du menu de Wampserver puis un des site qui apparaissent dans la page index.php, par exemple aviatechno, on obtiendra : [localhost] ce qui ajoute un niveau de plus (localhost/) par rapport au site réel et fait que les variables susmentionnées n'ont pas un contenu similaire à celui du site réel.
Donc, - 3 - dans le fichier Wamp\www\index.php modifier la ligne :
J'ai bien suivi le tuto et les sites aviatechno, phottello, le.pointu, ne veulent pas ouvrir. Mon localhost répond bien mais si je change de non dans internet explorer: [localhost] ou [aviatechno], jai toujours le localhost en vue. on dirais que les répertoire ne veulent pas changer pour chaque adresse.
4 - dans le fichier Wamp\www\index.php modifier la ligne : echo '<a class="ditem" href="'.$file.'"><img src="dossier.gif" alt="image dossier" /> '.$file.'</a>';
Ne pas oublier de sauvegarder les fichiers modifiés. Redémarer la machine. Lancer Wampserver (Ne pas oublier, sinon ça ne fonctionne pas) Lancer le navigateur déclaré par défaut lors de l'installation de Wamp5 taper [monsite] Et ÇA FONCTIONNE, je viens d'essayer en rajoutant "monsite" à ceux que j'avais déjà.
Rebonjour, Chez moi , WampServer est instaler dans c:wamp. Dans le répertoire www, jai la page d'acceuil .de WampServer Dans ce répertoire jai créer un autre dossier du nom: gtrgt, par la suite jai créer une nouvelle BDD du nom de nuke et envoyer mon site nuke dans le dossier gtrgt.
J'ai modiffier le fichier: httpd.conf , qui ce trouve dans:C:\wamp\Apache2\conf. NameVirtualHost *:80
Et voila, maintenent [localhost] fonctionne et si je entre [gtrgt] / je me retrouve encors avec l'index.php du localhost, aucun changement, je reste clouer sur la page d'acceuil de WampServer
> Rebonjour, > Chez moi , WampServer est instaler dans c:wamp. > Dans le répertoire www, jai la page d'acceuil .de WampServer > Dans ce répertoire jai créer un autre dossier du nom: gtrgt, > par la suite jai créer une nouvelle BDD du nom de nuke et > envoyer mon site nuke dans le dossier gtrgt. > > J'ai modiffier le fichier: httpd.conf , qui ce trouve > dans:C:\wamp\Apache2\conf. > NameVirtualHost *:80 > > <VirtualHost *:80> > DocumentRoot C:/Wamp/www > ServerName localhost > </VirtualHost> > > <VirtualHost *:80> > DocumentRoot C:/Wamp/www/gtrgt > ServerName gtrgt > </VirtualHost> > > Par la suite, jai modiffier le fichier: hosts , > C:\WINDOWS\system32\drivers\etc. > 127.0.0.1 localhost > 127.0.0.1 gtrgt > > Par la suite jai modiffier le fichier index.php du répertoite > www > > Wamp\www\index.php modifier la ligne : > echo '<a class="ditem" href="'.$file.'"><img src="dossier.gif" > alt="image dossier" /> '.$file.'</a>'; > > par > > echo '<a class="ditem" href="['.$file.'] > src="dossier.gif" alt="image dossier" /> '.$file.'</a>'; > > Et voila, maintenent [localhost] fonctionne et si je > entre [gtrgt] / je me retrouve encors avec l'index.php du > localhost, aucun changement, je reste clouer sur la page > d'acceuil de WampServer.
Peut etre que mon probleme vien du fichier config.php
En procédant à une installation « normale » de Wamp5, il n'existe pas de fichier "config.php"
Avant d'essayer d'installer des trucs et des machins *en plus* de Wamp5, il convient d'abord de s'assurer que celui-ci est correctement paramétré et fonctionne bien *de base*, c'est-à-dire sans rien y ajouter.
Donc :
- 1 - Désinstaller tous les trucs et les machins ajoutés à Wamp5 - 2 - Désisntaller Wamp5 - 3 - Nettoyer la BDR (Voir la FAQ) - 4 - Redémarrer la machine - 5 - Dévalider les services et programmes lancés automatiquement au démarrage (Exécuter : msconfig) et non strictement indispensable au fonctionnement de Windows - 6 - Redémarrer la machine - 7 - Installer Wamp5 - 8 - Configurer les fichiers comme indiqué dans une précédente contribution, *sans* ajouter des trucs et des machins. - 9 - Mettre un fichier index.php dans le répertoire souhaité, en l'occurrence gtrgt - 10 - Lancer Wampserver - 11 - Lancer Localhost par le menu de l'icône Wampserver - 12 - Vérifier que "gtrgt" apparaît sous le menu Vos projets et le lancer - 13 - Vérifier que c'est bien gtrgt/index.php qui s'exécute.
Arrivé là, cela indique que Wampserver fonctionne correctement.
Donc, si après avoir ajouté des trucs et des machins, ça ne fonctionne pas, le problème ne vient pas de Wamp5.
Pareil que Zoltatem, si je clique sur un site de "mes projet" je reste bloqué sur la page de WAMP. Et ce même si il y a un index.html dans le dossier. Voici ma config :
DocumentRoot Y:/www
# Use name-based virtual hosting. # #NameVirtualHost *:80
D'ailleurs sur la page WAMP, le lien pointe sur [edouard] et non sur [edouard]. Ca ne marche pas non plus si je rentre l'adresse complète dans le navigateur. C'est comme si le virtual host n'était pas pris en compte.
Avant d'essayer d'installer des trucs et des machins *en plus* de Wamp5, il convient d'abord de s'assurer que celui-ci est correctement paramétré et fonctionne bien *de base*, c'est-à-dire sans rien y ajouter.
100% d'accord car j'ai des collegues "spécialistes" enfin bof qui... merci dominique d'insister sur ce point andré
"Et puis, il faudrait aussi *décommenter" la ligne #NameVirtualHost *:80, c'est-à-dire supprimer le # de début de ligne."
Oui c'est ça qui gênait en fait. Merci bien.
Je voulais savoir si le virtual host servait en autre à indiquer la racine d'un site web. Je m'explique :
Le *echo $_SERVER['DOCUMENT_ROOT']* m'indique bien Y:/www/monsite spécifé dans mon virtual host. Je pourrais me servir de cette variable pour mes "include" mais en local, car avec mon hébergeur c'est pas une méthode conseillée. Et j'ai pas envie de faire deux sites différents. Je voudrais donc savoir comment limiter l'arborescence du site au dossier "monsite" et pas depuis "www" comme c'est le cas actuellement, lors d'un "href=../menu" par exemple.
> Le *echo $_SERVER['DOCUMENT_ROOT']* m'indique bien > Y:/www/monsite spécifé dans mon virtual host. Je pourrais me > servir de cette variable pour mes "include" mais en local, car > avec mon hébergeur c'est pas une méthode conseillée.
Au contraire, c'est la méthode conseillée et même quasiment obligatoire. Si tu codes tes chemins *en dur* par rapport à ton hébergeur actuel, tu seras bien désapointé le jour où celui-ci changera ton site de place et/ou de machine (Migration) ou le jour où tu changeras d'hébergeur.
Par exemple, mes deux sites identiques [aviatechno.free.fr] et [aviatechno.info] sont chez deux hébergeurs différents mais sont transférés depuis mon site local de la même manière par le même programme FTP. Bien sûr, j'utilise $_SERVER['DOCUMENT_ROOT'] pour travailler en relatif et $_SERVER['SERVER_NAME'] pour quelques variantes suivant l'hébergeur ou le site local.
Si tu fais *exactement* toutes les modifications et appels comme je l'ai préconisé dans la première contribution de cette enfilade, ton site local se comportera de la même manière que le site réel. Si, en local, tu code href='../menu', ce sera la même chose pour le site réel.
Voici une fonction php qui permet, de définir le niveau d'arborescence à laquelle on se trouve
//Recherche du "niveau" d'arborescence //retourne "" ou "../" * nombre de fois nécessaires function arbre() { return str_repeat("../",substr_count(substr($_SERVER['SCRIPT_FILENAME'],strlen($_SERVER['DOCUMENT_ROOT'])),'/')-1); }
Ce qui permet de n'utiliser qu'un seul dossier contenant les images qui pouvent se trouver sur toutes les pages, où qu'elles situent dans l'arborescence du site.
Voici, par exemple, comment créer un lien sur la racine du site, sans s'occuper de calculer « à la main » où on se trouve ; et ça fonctionnera toujours même si on change le script de place dans l'arborescence, même si on change d'hébergeur.