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?
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.
Ö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 ;
Ö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.
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.
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:
WAMP Settings
auswählen, 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
Schauen wir uns die Konfigurationsdatei an. Beachten Sie die Variablen und das Array.
Hier ist das Array. Eine Variable, die zuvor verwendet wurde. Mal sehen ... Oh, es sagt uns, wo und was zu tun ist.
Wie in der L&OUML;SUNG erwähnt:
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.
Erstellen Sie einen virtuellen Host wie RiggsFolly sagte.
Und versuchen Sie, LoadModule rewrite_module modules/mod_rewrite.so
in httpd.conf
zu kommentieren
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.
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
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']
C:\wamp\www
In index.php
line 338
($suppress_localhost ? 'http://' : '')
change http:// to http://localhost/
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?
Ich denke, der einfachste und schnellste Weg ist:
Öffnen Sie index.php in Ihrem www-Ordner.