web-dev-qa-db-ger.com

WAMP - Entfernen Sie localhost aus der Projekt-URL

Die URLs meiner Projekte in WAMP lösen sich nicht wie erwartet auf. Ich würde zum Beispiel erwarten, dass das Projekt im Ordner c:\wamp\www\project1 die URL http: // project1/ hat, aber tatsächlich die URL http: // localhost/project1/ .

Dies kann zu Problemen beim Zugriff auf Servervariablen führen. Wie kann ich das beheben?

10

Sie können auch diese Antwort anzeigen , insbesondere wenn Sie jetzt WAMPServer 3 oder höher verwenden, um eine einfache Beschreibung zu erstellen und virtuelle Hosts zu erstellen.

Eigentlich war diese Änderung von den WAMPServer-Entwicklern beabsichtigt und aus gutem Grund.

Es gibt ein Problem bei der Verwendung des localhost/project1-URLs und des Standard-WAMPServer DocumentRoot, da es bei einigen Frameworks und Umgebungen mit WordPress-Typ Probleme verursacht, sowie bei Ihrem eigenen Code, wenn Sie Code verwenden, der von der Serverumgebung abhängt.

Die richtige Lösung besteht darin, virtuelle Hosts für alle Ihre Projekte zu erstellen, selbst für diejenigen, die Sie in den \wamp\www\project1-Stilordnern speichern.

In diesem Fall ist DocumentRoot \wamp\www und das verursacht diese Probleme.

Diese Tools erwarten, dass DocumentRoot der Stamm der Site ist, d. H. \wamp\www\project1, so dass sie bei Verwendung von PHP Variablen wie 

$_SERVER['HTTP_Host']
$_SERVER['SERVER_NAME']
$_SERVER['DOCUMENT_ROOT']

sie erhalten die richtige Antwort, d. h. die Antwort, die sie auf einem echten Live-Server erhalten würden, der nur diese Site hostet.

Die Verwendung der localhost\project1-Stil-URL würde bedeuten, dass diese Variablen zurückgegeben würden

$_SERVER['HTTP_Host'] = localhost
$_SERVER['SERVER_NAME'] = localhost
$_SERVER['DOCUMENT_ROOT'] = C:/wamp/www

Wann sollten sie zurückkehren? 

$_SERVER['HTTP_Host'] = project1
$_SERVER['SERVER_NAME'] = project1
$_SERVER['DOCUMENT_ROOT'] = C:/wamp/www/project1

Was Sie also tun sollten, um das My Projects-Menü zum Laufen zu bringen und den Aufwand beim Kopieren von Sites auf Live-Server zu reduzieren, ist:

Erstellen Sie für jedes Projekt einen Eintrag in der HOSTS-Datei, und denken Sie daran, einen für den Zugriff über IPV4 (127.0.0.1) und einen für den Zugriff über IPV6 (:: 1) zu erstellen: -

127.0.0.1 localhost
127.0.0.1 project1

::1 localhost
::1 project1

Denken Sie daran, den Windows DNS-Cache nach jeder Änderung dieser Datei wie folgt zu aktualisieren: -

Starten Sie ein Befehlsfenster mit Run as Administrator und führen Sie Folgendes aus: -

net stop Dnscache
net start Dnscache

Jetzt müssen Sie eine Virtual Host-Definition erstellen. Bearbeiten Sie die \wamp\bin\Apache\apache2.4.9\conf\extra\httpd-vhost.conf-Datei (Apache-Versionen können abweichen).

Löschen Sie das Standardmaterial dort, wenn Sie dies zum ersten Mal tun. Und dann erstellen Sie Ihre Virtual Host-Definitionen wie folgt: -

#
# 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>

Jetzt müssen Sie noch eine Änderung vornehmen. Sie müssen die Zeile in httpd.conf kommentieren, die die zuvor geänderte Datei enthält. Bearbeiten Sie also die httpd.conf-Datei und verwenden Sie dazu die Wampmanager-Menüs, um sicherzustellen, dass Sie die richtige Datei bearbeiten.

Suchen Sie diese Zeile #Include conf/extra/httpd-vhosts.conf und entfernen Sie das Kommentar #-Symbol vom Anfang der Zeile wie folgt: -

Include conf/extra/httpd-vhosts.conf

Jetzt müssen Sie natürlich Apache neu starten, damit Ihre Konfigurationsänderungen übernommen werden.

Wenn Apache nicht neu startet, haben Sie wahrscheinlich einen Fehler in der Konfig gemacht, um herauszufinden, was falsch ist.

Öffnen Sie ein Befehlsfenster und CD im Ordner \wamp\bin\Apache\apache2.4.9\bin.

Dann führe das aus: -

httpd -t

Wenn der Fehler in httpd.conf oder den httpd-vhost.conf-Dateien enthalten ist, wird der Fehler angezeigt und außerdem die Zeilennummer angegeben, um das Auffinden des Fehlers zu erleichtern.

33
RiggsFolly

Öffnen Sie in Ihrem WWW-Ordner die Zeile index.phpat, Zeile 30, und ändern Sie: $ suppress_localhost auf false

das sollte aussehen:

$ suppress_localhost = false ;

13
user3795145

Öffnen Sie in Ihrem www-Ordner index.php in Zeile 30. Ändern Sie hier $suppress_localhost in false. So sollte es aussehen:

$suppress_localhost = false;

Das war für mich die schnellste und einfachste Lösung. Ich verwende 64-Bit-Wamp.

12
pud

Ihr Wamp scheint dafür konfiguriert zu sein, eine Website auf der normalerweise nicht existierenden Domain helloworld zu betreiben.

hinzufügen:

 127.0.0.1    helloworld

in dieser Datei: c:\windows\system32\drivers\etc\hosts

Stellen Sie sicher, dass Sie Ihren Texteditor mit Administratorrechten starten, um diese Datei bearbeiten zu können.

Dies teilt Ihrem Computer mit, dass die ansonsten nicht vorhandene Domäne helloworld in Ihre Loopback-Adresse aufgelöst werden sollte.

3
nl-x

Okay, ich hatte dieses Problem. Also habe ich das Problem behoben und auf eine tatsächliche Lösung, NOT A HACK, zurückgeführt.

Die L&OUML;SUNG

  1. Klicken Sie mit der rechten Maustaste auf das WAMP-Server-Symbol
  2. WAMP Settings auswählen, 
  3. Option auswählen (aktivieren) Add localhost in URL 


ERLEDIGT. Der Rest ist zu Ihrer Information, wie und warum.


Hinweis: localhost/meinprojekt.php oder meinprojekt.php. Obwohl die Lösung bereits akzeptiert wurde, sah ich einige Posts, die mich verwirrten. Die akzeptierte Lösung basiert auf einem einzigen Projekt für verschiedene Serveranwendungen, basierend auf der spezifischen Frage des OP und dem Einfluss auf das betreffende einzelne Projekt. Aber alle anderen Lösungen sind Hacks und beantworten die Lösung der OP-Frage nicht wirklich, geben jedoch einen guten Punkt bezüglich der URL an. Also, gemäß den anderen "Lösungen", wie man die localhost-Referenz in der URL umschaltet. Daher wurde meine zusätzliche Lösung zum Mix hinzugefügt.


Dies ist ein Kippschalter.

Fehlerbehebungsprozess (kein Hacking erforderlich):



Lassen Sie uns einen Blick auf die index.php werfen

 enter image description here


Schauen wir uns die Konfigurationsdatei an. Beachten Sie die Variablen und das Array.

 enter image description here


Hier ist das Array. Eine Variable, die zuvor verwendet wurde. Mal sehen ... Oh, es sagt uns, wo und was zu tun ist.

 enter image description here


Wie in der L&OUML;SUNG erwähnt:

 enter image description here

3
ejbytes

Für mich war der einfachste Weg zu http: // localhost und in der Wampserver Homepage Add a Virtual Host (Abschnitt Tools). Es gibt ein einfaches und einfaches Formular, mit dem Sie problemlos Alias ​​erstellen können (stattdessen Konsole, wenn Sie das Taskleistensymbol zum Erstellen von Alias ​​verwenden). Keine Quellbearbeitung, nur mit dem, was Wamp bietet. Denken Sie daran, dass Sie nach dem Erstellen eines Alias ​​die DNS aktualisieren müssen. Getestet auf Win10, WampServer 3.0.6 64bit.

1

Erstellen Sie einen virtuellen Host wie RiggsFolly sagte.

Und versuchen Sie, LoadModule rewrite_module modules/mod_rewrite.so in httpd.conf zu kommentieren

0
amdev

Wenn Ihr Ordner "Ihre Projekte" in "wamp/www /" vorhanden ist und Sie die localhost-Startseite nach dem Starten von wampserever richtig sehen können und Sie trotzdem nicht auf Ihre Projekte zugreifen können, öffnen Sie einfach den Ordner www, öffnen Sie die Datei "index.php" und suchen Sie nach $ suppress_localhost und setzen Sie den Wert auf false . Starten Sie wampserver neu, wechseln Sie zu localhost und versuchen Sie, auf Ihr Projekt zuzugreifen.

0
Fam

Dazu können Sie mit dem Add a virtual Host -Dienstprogramm unter Tools auf der Homepage von localhost einen virtuellen Host erstellen.
Weitere Informationen zum Erstellen eines virtuellen Hosts finden Sie unter: Schrittweise Anweisungen

0
Rakesh

HostnameLookups ist in httpd.conf nicht deaktiviert, wenn DocumentRoot geändert wurde oder nicht . Im Browser auf .__ getestet wurde. $ _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

Dies ist an sich keine wirkliche Antwort. Es scheint, dass der schnellste Weg, einen virtuellen Host mit WAMP zu entfernen, darin besteht, entweder gar keinen zu erstellen oder ihn zu deinstallieren/erneut zu installieren. Wie lautet der Pfad zur Konfigurationsdatei, um einen fehlerhaften und ansonsten nicht fehlerhaften WAMP-Server zu korrigieren?

0
Jim

Ich denke, der einfachste und schnellste Weg ist:

Öffnen Sie index.php in Ihrem www-Ordner.

0
Ole