Les URL de mes projets dans WAMP ne se résolvent pas comme prévu. Par exemple, je m'attendrais à ce que le projet du dossier c:\wamp\www\project1 ait l'URL http: // project1/ , mais l'URL http: // localhost/project1/ .
Cela peut entraîner des problèmes lors de l'accès aux variables du serveur. Comment puis-je réparer ça?
Vous pouvez aussi regardez cette réponse spécialement si vous utilisez maintenant WAMPServer 3 ou une version ultérieure, pour un simple clic et créer un moyen de créer des hôtes virtuels.
En réalité, cette modification était destinée aux développeurs de WAMPServer et ce pour une bonne raison.
Il y a un problème d'utilisation de l'URL localhost/project1
et du WAMPServer DocumentRoot par défaut, car cela pose des problèmes pour certains frameworks et environnements de type WordPress, ainsi que votre propre code si vous utilisez du code qui dépend de la connaissance de l'environnement du serveur.
La bonne solution consiste à créer des hôtes virtuels pour tous vos projets, même ceux que vous stockez dans les dossiers de style \wamp\www\project1
.
DocumentRoot est alors appelé \wamp\www
et c’est ce qui cause ces problèmes.
Ces outils s’attendent à ce que DocumentRoot soit la racine du site, c'est-à-dire \wamp\www\project1
. Ainsi, lorsqu'ils utilisent des variables PHP telles que
$_SERVER['HTTP_Host']
$_SERVER['SERVER_NAME']
$_SERVER['DOCUMENT_ROOT']
ils obtiennent la réponse correcte, c’est-à-dire la réponse qu’ils obtiendraient sur un serveur réel hébergeant uniquement ce site.
Donc, utiliser l'URL de style localhost\project1
signifierait que ces variables renverraient
$_SERVER['HTTP_Host'] = localhost
$_SERVER['SERVER_NAME'] = localhost
$_SERVER['DOCUMENT_ROOT'] = C:/wamp/www
Quand ils devraient revenir
$_SERVER['HTTP_Host'] = project1
$_SERVER['SERVER_NAME'] = project1
$_SERVER['DOCUMENT_ROOT'] = C:/wamp/www/project1
Voici donc ce que vous devez faire pour que le menu My Projects
fonctionne et pour que vous ayez moins de mal à copier des sites sur des serveurs en direct:
Créez une entrée dans le fichier HOSTS pour chaque projet comme ceci et n'oubliez pas d'en créer une pour l'accès via IPV4 (127.0.0.1) et une pour l'accès via IPV6 (:: 1): -
127.0.0.1 localhost
127.0.0.1 project1
::1 localhost
::1 project1
N'oubliez pas d'actualiser le cache DNS Windows après toute modification de ce fichier, comme suit: -
Lancer une fenêtre de commande en utilisant Run as Administrator
et lancer: -
net stop Dnscache
net start Dnscache
Maintenant, vous devez créer une définition d'hôte virtuel, alors éditez le fichier \wamp\bin\Apache\apache2.4.9\conf\extra\httpd-vhost.conf
(les versions d'Apache peuvent différer)
Supprimez les éléments par défaut lors de la première utilisation. Et ensuite, créez vos définitions d'hôte virtuel comme suit: -
#
# Use name-based virtual hosting.
# This next line is not required if you are using Apache 2.4.x and should be deleted
NameVirtualHost *:80
## should be first so the wamp menu page loads and is the default site
## should also never be changed from only allowing access from the local machine
## for a bit of extra security from casual ip address probing
<VirtualHost *:80>
DocumentRoot "C:/wamp/www"
ServerName localhost
ServerAlias localhost
<Directory "C:/wamp/www">
AllowOverride All
<IfDefine Apache24>
Require local
</IfDefine>
<IfDefine !Apache24>
Order Deny,Allow
Deny from all
Allow from 127.0.0.1 localhost ::1
</IfDefine>
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/wamp/www/project1"
ServerName project1
ServerAlias project1
<Directory "C:/wamp/www/project1">
AllowOverride All
<IfDefine Apache24>
Require local
</IfDefine>
<IfDefine !Apache24>
Order Deny,Allow
Deny from all
Allow from 127.0.0.1 localhost ::1
</IfDefine>
</Directory>
</VirtualHost>
Maintenant vous avez besoin d’un changement supplémentaire, vous devez supprimer le commentaire de la ligne dans httpd.conf
qui inclut le fichier ci-dessus que nous venons de modifier. Donc, éditez le fichier httpd.conf
, utilisez les menus de wampmanager pour le faire, cela vous assurera d’éditer le bon fichier.
Recherchez cette ligne #Include conf/extra/httpd-vhosts.conf
et supprimez le symbole commenter #
du début de la ligne comme suit: -
Include conf/extra/httpd-vhosts.conf
Maintenant, bien sûr, vous devrez redémarrer Apache pour qu'il prenne en compte vos modifications de configuration.
Si Apache ne redémarre pas, vous avez probablement commis une erreur dans la configuration. Pour savoir ce qui ne va pas, essayez ceci.
Ouvrez une fenêtre de commande et CD
dans le dossier \wamp\bin\Apache\apache2.4.9\bin
.
Puis lancez ceci: -
httpd -t
Si l'erreur est dans les fichiers httpd.conf
ou httpd-vhost.conf
, elle vous indiquera l'erreur et vous indiquera également le numéro de ligne pour que la recherche de l'erreur soit très facile.
dans votre dossier www ouvrez index.phpat ligne 30 change: $ suppress_localhost à false
c'est devrait regarder:
$ suppress_localhost = false ;
Dans votre dossier www
, ouvrez index.php
à la ligne 30. Ici, changez $suppress_localhost
en false
. Alors, il faut regarder:
$suppress_localhost = false;
Ce fut la solution la plus rapide et la plus facile pour moi. J'utilise Wamp 64 bits.
Votre wamp semble être configuré pour exécuter un site Web sur le domaine normalement inexistant de helloworld.
ajouter:
127.0.0.1 helloworld
dans ce fichier: c:\windows\system32\drivers\etc\hosts
Assurez-vous de démarrer votre éditeur de texte avec les privilèges d'administrateur pour pouvoir modifier ce fichier.
Cela indiquera à votre ordinateur que le domaine helloworld
, sinon inexistant, doit être résolu en votre adresse de bouclage.
Ok, j'ai eu ce problème. Donc, j'ai résolu le problème et l'ai tracé jusqu'à une solution réelle, PAS UNE PISTE.
La solution :
WAMP Settings
, Add localhost in URL
TERMIN&EACUTE;. Le reste est à titre indicatif de comment et pourquoi.
Note: localhost/myproject.php ou myproject.php. Bien que la solution ait déjà été acceptée, j'ai vu certains messages qui me laissaient perplexe. La solution acceptée repose sur un seul projet concernant différentes applications serveur, en fonction de la question spécifique du PO et de la manière d'influencer ce projet en question. Mais toutes les autres solutions sont des hacks et ne répondent pas vraiment à la question du PO mais soulèvent un bon point à propos de l'URL. Ainsi, selon les autres "solutions", voici comment basculer la référence localhost dans l'URL. D'où ma solution supplémentaire ajoutée au mélange.
Ceci est un commutateur à bascule.
Processus de dépannage (aucun piratage impliqué):
Regardons l'index.php
Regardons le fichier de configuration. Notez les variables et tableau?
Voici le tableau. Une variable utilisée plus tôt. Voyons voir ... Oh, ça nous dit où et quoi faire.
Comme indiqué dans la solution :
Pour moi, le moyen le plus simple est de vous rendre sur http: // localhost et dans la page d’accueil de wampserver, utilisez Add a Virtual Host
(section Outils). Il existe un formulaire simple et facile pour créer un alias sans aucun problème (à la place, console lorsque vous utilisez l’icône de la barre des tâches pour créer un alias). Aucune édition de source, en utilisant simplement ce que propose wamp. N'oubliez pas d'actualiser le DNS après la création de l'alias. Testé sur Win10, WampServer 3.0.6 64 bits.
Créez un hôte virtuel comme dit RiggsFolly.
Et essayez de décommenter LoadModule rewrite_module modules/mod_rewrite.so
dans httpd.conf
Si votre dossier "Vos projets" existe dans "wamp/www /" et si vous pouvez voir la page d'accueil de localhost après avoir démarré correctement, et que vous ne pouvez toujours pas accéder à vos projets, allez simplement dans le dossier www, ouvrez index.php et recherchez $ suppress_localhost et définissez sa valeur sur false . Redémarrez wampserver, accédez à localhost et essayez d'accéder à votre projet.
Pour ce faire, vous pouvez créer un hôte virtuel à l'aide de l'utilitaire Add a virtual Host
sous le menu Outils de la page d'accueil de localhost.
Pour plus d’informations sur la création d’un hôte virtuel, visitez: Instructions pas à pas
HostnameLookups ON non désactivé dans httpd.conf avec DocumentRoot modifié ou non. .. testé dans le navigateur pour $ _SERVER ['HTTP_Host'] $ _SERVER ['SERVER_NAME'] $ _SERVER ['DOCUMENT_ROOT']
C:\wamp\www
In index.php
line 338
($suppress_localhost ? 'http://' : '')
change http:// to http://localhost/
Je pense que le moyen le plus simple et le plus rapide est de:
Ouvrez index.php dans votre dossier www >>> change: $ suppress_localhost soit false/no.