web-dev-qa-db-fra.com

WAMP - Supprimer l'hôte local de l'URL du projet

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?

10

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.

33
RiggsFolly

dans votre dossier www ouvrez index.phpat ligne 30 change: $ suppress_localhost à false

c'est devrait regarder:

$ suppress_localhost = false ;

13
user3795145

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.

12
pud

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.

3
nl-x

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

  1. Clic droit sur l'icône du serveur WAMP
  2. Sélectionnez WAMP Settings
  3. Sélectionnez (activez) l'option 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

 enter image description here


Regardons le fichier de configuration. Notez les variables et tableau?

 enter image description here


Voici le tableau. Une variable utilisée plus tôt. Voyons voir ... Oh, ça nous dit où et quoi faire.

 enter image description here


Comme indiqué dans la solution :

 enter image description here

3
ejbytes

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.

1
Jaroslav Klimčík

Créez un hôte virtuel comme dit RiggsFolly.

Et essayez de décommenter LoadModule rewrite_module modules/mod_rewrite.so dans httpd.conf

0
amdev

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.

0
Fam

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

0
Rakesh

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'] 

0
Adrian
C:\wamp\www

In index.php 
line 338 

($suppress_localhost ? 'http://' : '')


change http://   to http://localhost/
0
arrowgr

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.

0
Ole