Ich habe den wamp server 2.5 mit PHP 5.5 installiert. Wenn ich jetzt versuche, von der Startseite aus auf meine Projektseiten zuzugreifen, wird auf eine falsche URL umgeleitet und Google kann diese Seite nicht finden.
Die Problemdefinition ist
Ich gehe mit http://localhost
Da habe ich viele Projekte. Angenommen, ich klicke auf sample_project
Dann wird die Seite auf sample_projects/
Und Google Chrome zeigt den Fehler chrome cannot find this webpage
In meinem wamp PHP-Extensions-Bereich gibt es zwei Felder, die rot markiert sind. Sie sind php_enchant
und php_opcache
Was ist das Problem mit meinem wamp? Ich vermisse etwas? Hilfe bitte
Ehrlich gesagt halte ich es für sehr ineffizient, Virtual Host für jedes .. single .. Projekt zu erstellen. Nach der Untersuchung fand ich eine Schlüsselvariable in:
%Vor%Nach einer schnellen Analyse besteht der offensichtliche Zweck der Variable darin, den "localhost" in Projektverknüpfungen zu entfernen.
Ändern Sie diese Zeile:
%Vor%Dazu:
%Vor%WAMPServer 2.5 Homepage des Your Projects-Menüs und der virtuellen Hosts
In WampServer 2.5 gab es eine Änderung des Konzepts und es gibt einen guten Grund für diese Änderung!
In WampServer 2.5 wird nun dringend empfohlen, für jedes Ihrer Projekte einen virtuellen Host zu erstellen, selbst wenn Sie ihn dann in einer \wamp\www\subfolder
-Struktur halten.
Dokumentation virtueller Hosts
Die WampServer-Homepage (\ wamp \ www \ index.php) erwartet nun, dass Sie einen virtuellen Host für all Ihre Projekte erstellt haben und daher nur dann ordnungsgemäß funktionieren, wenn Sie dies tun.
Geschichte
Um Anfängern, die WampServer verwenden, um PHP Apache und MySQL zu lernen, das Leben leichter zu machen, wurde vorgeschlagen, Unterordner im Ordner \wamp\www\
zu erstellen.
Diese Unterordner würden dann als Links auf der WampServer Homepage unter dem Menü "Your Projects" erscheinen und diese Links würden einen Link zu localhost/subfoldername
enthalten.
Nur für einfache Lernprogramme zulässig
Dies machte das Leben für den kompletten Anfänger leicht und war zum Beispiel für die folgenden Tutorials, die PHP-Programmierung lernen sollten, vollkommen akzeptabel. Es wurde jedoch nie für die Entwicklung einer echten Website verwendet, die Sie später auf Ihren Server kopieren möchten. In der Tat, wenn Sie diesen Mechanismus verwendet haben, verursachte es oft Probleme, da die Live-Sites-Konfiguration nicht mit Ihrer Entwicklungskonfiguration übereinstimmen würde.
Das Problem für echte Website-Entwicklung.
Der Grund dafür ist natürlich, dass die standardmäßige DocumentRoot-Einstellung für wamp
ist DocumentRoot "c:/wamp/www/"
unabhängig davon, wie Ihr Unterordner aufgerufen wurde. Diese Einrichtung, die oft PHP-Code verwendet, der die Struktur oder Ihre Site abgefragt hat, erhielt auf Ihrem Entwicklungs-WampServer andere Informationen als auf einem live gehosteten Server, wo die DocumentRoot-Konfiguration auf den Ordner oben auf der Website verweist Dateihierarchie. Diese Art von Code existiert in vielen Frameworks und CMS's zB WordPress und Joomla etc.
Beispiel
Nehmen wir an, wir haben ein Projekt namens project1, das in wamp\www\project1
gespeichert ist und falsch als localhost/project1/index.php
Dies wird von einigen der fraglichen PHP-Befehle gemeldet:
%Vor% Wenn wir nun diese Site mit einer Virtual Host-Definition korrekt definiert und als http://project1
ausgeführt haben, werden die Ergebnisse auf der WAMPServer-Entwicklungssite mit denen in einer Live-Host-Umgebung übereinstimmen.
Nun scheint dieser Unterschied zunächst trivial zu sein, aber wenn Sie ein Framework wie WordPress oder eines der CMS wie Joomla zum Beispiel verwenden, kann dies Probleme beim Verschieben Ihrer Site auf einen Live-Server verursachen.
>Eigentlich sollte das im Prinzip für alle Windows-Apache-Server funktionieren, mit Unterschieden nur dort, wo Sie die Apache-Konfigurationsdateien finden können.
Es gibt 3 Schritte zum Erstellen Ihres ersten virtuellen Hosts in Apache und nur 2, wenn Sie bereits einen definiert haben.
Schritt 1 , Erstellen der Virtual Host-Definition (en)
Bearbeiten Sie die Datei namens httpd-hosts.conf
, die für WampServer in
(Apache-Versionsnummern können abweichen, aktivieren Sie das Gehirn, bevor Sie fortfahren)
Wenn Sie diese Datei zum ersten Mal bearbeiten, entfernen Sie den Standard-Beispielcode, der sinnlos ist.
Ich gehe davon aus, dass wir eine Definition für eine Site namens project1 erstellen wollen, die in
lebt %Vor%Sehr wichtig, zuerst müssen wir sicherstellen, dass localhost immer noch funktioniert, das ist die erste VHOST-Definition, die wir in diese Datei schreiben werden.
%Vor%Jetzt definieren wir unser Projekt: und das tun Sie natürlich für jedes Ihrer Projekte, wenn Sie ein neues beginnen.
%Vor% HINWEIS: Das jeder virtuelle Host als sein eigenes DocumentRoot
definiert. Es gibt auch viele andere Parameter, die Sie zu einer virtuellen Hosts-Definition hinzufügen können, überprüfen Sie die Apache-Dokumentation.
Kleine Seite
Die Art und Weise, wie virtuelle Hosts in Apache funktionieren: Die erste Definition in dieser Datei ist auch die Standard-Site. Wenn also der im Browser verwendete Domainname keiner tatsächlich definierten virtuell gehosteten Domain entspricht, wird localhost zur ersten Domain in der Datei wird daher die Seite machen, die geladen wird, wenn ein Hackversuch nur Ihre IP-Adresse verwendet.Wenn wir also sicherstellen, dass die Apache-Sicherheit für diese Domain IMMER AUF
gesetzt ist %Vor% Jeder zufällige Hack von einer externen Adresse wird einen Fehler erhalten und nicht in Ihren PC gelangen, aber wenn Sie eine Domain falsch schreiben, wird Ihnen die WampServer Homepage angezeigt, da Sie sich auf demselben PC wie WampServer befinden und daher local
.
Setp 2 :
Fügen Sie Ihrer HOSTS-Datei Ihren neuen Domainnamen hinzu. Jetzt müssen wir den Domainnamen, den wir in der Virtual-Host-Definition verwendet haben, zur HOSTS-Datei hinzufügen, damit Windows weiß, wo er zu finden ist. Dies ähnelt der Erstellung eines DNS A-Eintrags, ist jedoch nur in diesem Fall auf diesem bestimmten PC sichtbar.
Bearbeiten C:\windows\system32\drivers\etc\hosts
Die Datei hat keine Erweiterung und sollte auch so bleiben. Achten Sie auf Notepad, da es versuchen könnte, eine Erweiterung .txt
hinzuzufügen, wenn Sie keinen besseren Editor haben.
Ich schlage vor, dass Sie Notepad ++, seinen kostenlosen und einen sehr guten Editor herunterladen.
Auch dies ist eine geschützte Datei, daher müssen Sie sie mit Administratorrechten bearbeiten. Starten Sie Ihren Editor mit Als Administrator ausführen Menüoption.
Die Hosts-Datei sollte so aussehen, wenn Sie diese Änderungen abgeschlossen haben
%Vor% Beachten Sie, dass Sie hier Definitionen für die IPV4-Loopback-Adresse 127.0.0.1
und auch die IPV6-Loopback-Adresse ::1
haben sollten, da Apache nun IPV6-fähig ist und der Browser entweder IPV4 oder IPV6 oder beides verwendet. Ich habe keine Ahnung, wie es sich entscheidet zu verwenden, aber es kann entweder verwenden, wenn Sie den IPV6-Stack eingeschaltet haben, und die meisten Windows-Betriebssysteme tun, wie von XP SP3.
Nun müssen wir Windows sagen, dass es seinen Domain-Namen-Cache aktualisieren soll, also starten Sie erneut ein Befehlsfenster mit dem Ausführen als Administrator Menüoption erneut und machen Sie Folgendes:
%Vor% Dies zwingt Windows, seinen Domainnamen-Cache zu löschen und neu zu laden. Beim erneuten Laden liest es die HOSTS-Datei erneut, so dass es jetzt von der Domäne project1
weiß.
Schritt 3 : Entfernen Sie die Kommentarzeichen für die Zeile in httpd.conf, die die Virtual Hosts-Definitionsdatei enthält.
Bearbeiten Sie Ihre httpd.conf, verwenden Sie die wampmanager.exe-Menüs, um sicherzustellen, dass Sie die richtige Datei bearbeiten.
Suchen Sie diese Zeile in httpd.conf
%Vor% Und entfernen Sie einfach #
, um die Zeile auszukommentieren.
Um diese Änderung in Ihrem laufenden Apache zu aktivieren, müssen wir jetzt den Apache-Dienst stoppen und neu starten.
%Vor% Wenn nun das WAMP-Symbol in der Taskleiste nicht wieder GRÜN wird, bedeutet das wahrscheinlich, dass Sie in der Datei \wamp\bin\apache\apache2.4.9\conf\extra\httpd-hosts.conf
etwas falsch gemacht haben.
Wenn dies der Fall ist, ist dies ein nützlicher Mechanismus, um herauszufinden, was falsch ist. Es verwendet eine Funktion der Apache-Exe (httpd.exe), um seine Konfigurationsdateien zu überprüfen und Fehler nach Dateinamen und Zeilennummern zu melden.
Starten Sie ein Befehlsfenster.
%Vor%So beheben Sie die Fehler und wiederholen Sie den Test erneut, bis Sie die Ausgabe erhalten
%Vor%Jetzt gibt es noch eine Sache.
Es gibt tatsächlich 2 neue Menüpunkte im wampmanager-Menüsystem. Einer rief [b] 'Meine Projekte' [/ b] auf, der standardmäßig aktiviert ist. Und eine zweite, genannt [b] 'Meine virtuellen Hosts' [/ b], die standardmäßig nicht aktiviert ist.
'Meine Projekte' listet jedes Unterverzeichnis des Verzeichnisses \ wamp \ www auf und bietet einen Link zum Starten der Site in diesem Unterverzeichnis. Wie ich bereits sagte, startet es 'project1' und nicht 'localhost / project1', damit der Link funktioniert, müssen wir eine Virtual Host-Definition erstellen, damit dieser Link diese Site in Ihrem Browser startet, ohne die virtuelle Host-Definition Starten Sie eine Websuche nach dem Site-Namen als Keyword oder geben Sie einfach eine nicht gefundene Site-Bedingung zurück.
Der Menüpunkt "Meine virtuellen Hosts" ist ein wenig anders. Es durchsucht die Datei, die zum Definieren von virtuellen Hosts verwendet wird (wir werden in einer Minute darauf zugreifen) und erstellt Menüverknüpfungen für jeden gefundenen ServerName-Parameter und erstellt für jeden einen Menüeintrag. Dies mag ein wenig verwirrend erscheinen, denn sobald wir eine virtuelle Host-Definition für die Unterverzeichnisse des \ wamp \ www-Ordners erstellt haben, werden einige Einträge sowohl im Menü "Meine Projekte" als auch im Menü "Meine virtuellen Hosts" angezeigt >
Wie aktiviere ich dieses andere Menü "Meine virtuellen Hosts"?
;WAMPPROJECTSUBMENU
im Bereich [Menu.Left]. ;WAMPVHOSTSUBMENU
entweder vor oder nach dem Parameter ;WAMPPROJECTSUBMENU
hinzu. Große Notiz Das neue Menü wird nur angezeigt, wenn Sie bereits einige virtuelle Hosts definiert haben! Andernfalls sehen Sie keinen Unterschied, bis Sie einen VHOST definieren.
Ich kann nicht glauben, dass Wampserver jetzt von jedem erwartet, dass er für jedes Projekt, das sich in der Entwicklung befindet, einen virtuellen Host auf seinen Laptops offline erstellt? Deine Anweisungen scheinen sehr gut zu sein, aber wahrscheinlich viel zu kompliziert für Anfänger (außerdem vermute ich, dass der Dateipfad in deinen Anweisungen für Schritt 2: Hinzufügen der neuen Domäne zur HOSTS-Datei nur für 32-Bit-Windows gilt)?
Die Lösung von Rogue (Änderung $ suppress_localhost="true"; zu $ suppress_localhost="false"; in c: /wamp/www/index.php) wird perfekt für 99% der Benutzer funktionieren, die mehr als entwickeln eine Website auf ihren Laptops.
Auch das Hochladen einer fertig gestellten Website auf einen Online-Server sollte keine wirklichen Probleme verursachen. Hat vielleicht Wampserver einen anderen Grund, den $ suppress_localhost Code hinzuzufügen?