Ich verwende eine Wamp-Version 2.5. Mein Apache ist 2.4.9 PHP: 5.5.12 MySQL: 5.6.17
Ich habe diese Konfigurationen:
Auf meinem httpd.conf
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
Auf meinem G:\wamp\bin\apache\apache2.4.9\conf\extra\httpd-vhost.conf
# Virtual Hosts
#
# Required modules: mod_log_config
# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at
# <URL:http://httpd.apache.org/docs/2.4/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.
#
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "g:/Apache24/docs/dummy-host.example.com"
ServerName dummy-host.example.com
ServerAlias www.dummy-host.example.com
ErrorLog "logs/dummy-host.example.com-error.log"
CustomLog "logs/dummy-host.example.com-access.log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "g:/Apache24/docs/dummy-host2.example.com"
ServerName dummy-host2.example.com
ErrorLog "logs/dummy-host2.example.com-error.log"
CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "g:/wamp/www"
ServerName localhost
ErrorLog "logs/localhost-error.log"
CustomLog "logs/localhost-access.log" common
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "g:\wamp\www\mysite\public"
ServerName mysite.dev
</VirtualHost>
Auf meinem c:\Windows\System32\Drivers\etc\hosts
# localhost name resolution is handled within DNS itself.
127.0.0.1 localhost
127.0.0.1 mysite.dev
# ::1 localhost
Ich versuche, über diese URL auf mein Projekt zuzugreifen: http://www.mysite.dev/
SONDERN Ich bekomme ein Server not found error
Ich habe versucht, darauf zuzugreifen www.mysite.dev
, http://mysite.dev
aber trotzdem pech!
Mein virtueller Host hat vorher funktioniert, aber ich bin mir nicht sicher, warum es jetzt nicht funktioniert. Es passieren einige seltsame Dinge.
Ich bin mir nicht sicher, was passiert. Irgendwelche Ideen werden sehr geschätzt!
Vielen Dank!
Zuerst müssen Sie das Beispiel entfernen Attrappe Definitionen aus Ihrer Datei vhost-httpd.conf. Sie sind da als nur Beispiele nur um Ihnen den Einstieg in die Syntax zu erleichtern, und sollte nicht aktiv bleiben conf/extra/httpd-vhosts.conf
da sie auf nicht vorhandene Ordner verweisen.
Entfernen Sie also diese 2 Definitionen aus der Datei:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "g:/Apache24/docs/dummy-host.example.com"
ServerName dummy-host.example.com
ServerAlias www.dummy-host.example.com
ErrorLog "logs/dummy-host.example.com-error.log"
CustomLog "logs/dummy-host.example.com-access.log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "g:/Apache24/docs/dummy-host2.example.com"
ServerName dummy-host2.example.com
ErrorLog "logs/dummy-host2.example.com-error.log"
CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>
Zweitens ist Apache 2.4.x IPV4 ( 127.0.0.1 ) und IPV6 (::1) bewusst, also Ihr hosts
sollte wie folgt aussehen, mit Definitionen für IPV4- und IPV6-Versionen für jede Site. Der Browser kann beides beliebig verwenden, sodass Sie beide benötigen, wird aber wahrscheinlich das IPV6-Netzwerk dem IPV4 vorziehen, wenn beide tatsächlich auf Ihrem PC aktiv sind.
127.0.0.1 localhost
::1 localhost
127.0.0.1 mysite.dev
::1 mysite.dev
Versuchen Sie nun auf den 2 virtuellen Hosts, die tatsächlich auf Ihrem System vorhanden sind, dies als Definition des virtuellen Hosts:
<VirtualHost *:80>
DocumentRoot "g:/wamp/www"
ServerName localhost
ServerAlias localhost
ErrorLog "logs/localhost-error.log"
CustomLog "logs/localhost-access.log" common
<Directory "G:/wamp/www">
AllowOverride All
Options Indexes FollowSymLinks
Require local
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "g:\wamp\www\mysite\public"
ServerName mysite.dev
ServerAlias www.mysite.dev
ErrorLog "logs/mysite-error.log"
CustomLog "logs/mysite-access.log" common
<Directory "G:/wamp/www/mysite/public">
AllowOverride All
Options Indexes FollowSymLinks
Require local
</Directory>
</VirtualHost>
Das <Directory>....</Directory>
Abschnitt innerhalb der <VirtualHost>....</VirtualHost>
Abschnitt teilt Apache mit, von welchen IP-Adressen Verbindungen akzeptiert werden dürfen, also unter Verwendung der Apache 2.4-Syntax Require local
schränkt den Zugriff so ein, dass nur der PC, auf dem WAMPServer ausgeführt wird, dh Apache, eine Verbindung zu einer dieser Sites herstellen kann.
Vermeiden Sie es, Apache 2.2-Syntax und Apache 2.4-Syntax in derselben Definition zu mischen. Also nicht verwenden
Order Allow,Deny
Allow from all
und
Require all granted
in der gleichen Definition. Sie verwenden Apache 2.4, verwenden Sie also die Apache 2.4-Syntax.
Wenn Sie feststellen möchten, dass andere PCs in Ihrem lokalen Netzwerk Ihre Site sehen können, z. B. Arbeitskollegen oder Kinder usw., können Sie diese Syntax zu einer oder mehreren Ihrer Virtual Host-Definitionen hinzufügen.
Erlauben Sie nur einem einzigen anderen PC den Zugang zu Ihrer Website
Require local
Require ip 192.168.1.100
oder 2 andere PCs
Require local
Require ip 192.168.1.100, 192.168.1.101
Oder für jeden in Ihrem lokalen Netzwerk verwenden Sie einfach die ersten 3 der 4 Quartile der IP-Adresse.
Require ip 192.168.1
Vermeiden Sie auch die Verwendung der Syntax, die den Zugriff von überall erlaubt, z
Require all granted <--Apache 2.4 syntax
or
Order Allow,Deny <-- Apache 2.2 syntax
Allow from all
Es kann Ihre Probleme kurzfristig lösen, wartet aber nur darauf, Sie irgendwann später zu erwischen, wenn Sie sich entscheiden, Ihre Website einem Freund/Kunden/Chef zu zeigen. Wenn Sie auf die Stufe des Port-Forwardings kommen, wird Ihr Router damit weltweit in Ihr Netzwerk zugelassen, was dazu führen würde ALLE IHRE WEBSITES der Welt zugänglich zu machen.
Es ist besser, die EINE virtuelle Host-Definition für die EINE Website zu ändern, von der Sie möchten, dass die Leute sie zum Testen/Angeben sehen Require local
zu Require all granted
und erlauben Sie nur den Zugriff auf diese einzelne Site aus dem Internet.
Nachdem Sie alle diese Änderungen vorgenommen haben, denken Sie daran, Apache neu zu starten.
Auch wenn Sie die Hosts-Datei ändern, um die Änderungen zu aktivieren, sollten Sie entweder neu starten oder diesen Befehl von der Befehlszeile eines Befehlsfensters ausführen, das gestartet wird Runs as Administrator
Möglichkeit.
net stop dnscache
net start dnscache
Wenn Sie Windows 10 verwenden, funktionieren die oben genannten DNS-Befehle nicht mehr, Sie sollten dies stattdessen tun.
ipconfig /flushdns
Aufgrund der Übernahme von .dev gTLD durch Google ist es nicht mehr ohne weiteres möglich, .dev-Entwicklungsseiten zu haben. Der beste Weg, dies abzumildern, besteht darin, Ihre Entwicklungsdomäne einfach in .local oder etwas, das Sie bevorzugen, umzubenennen.
Was im Hintergrund passiert, ist, dass der lokale DNS-Server den Browser auf 127.0.53.53 umleitet (cmd öffnen > nslookup yourdomain.dev), um die Endbenutzer darüber zu informieren, dass .dev gTLD erworben wird. Da die .dev-Domain in der Hosts-Datei auf 127.0.0.1 eingestellt ist, wird die Verbindung verweigert angezeigt.
Sie können 127.0.0.1 in der Hosts-Datei in 127.0.53.53 ändern und sehen, dass sich der Browserfehler von ERR_CONNECTION_REFUSED in ERR_ICANN_NAME_COLLISION ändert.
Folgendes funktioniert bei mir
<VirtualHost *:80>
DocumentRoot "G:\project\test.dev"
ServerAdmin [email protected]
ServerName test.dev
ErrorLog "logs/test.dev-error.log"
CustomLog "logs/test.dev-access.log" common
<Directory "G:\project\test.dev">
AllowOverride All
Options Indexes FollowSymLinks
Require local
</Directory>
</VirtualHost>
Ich behebe das gleiche Problem, indem ich einige Zeilen in httpd.conf im Apache-Ordner auskommentiere.
Kommentieren Sie die folgenden Zeilen aus:
Include conf/extra/httpd-vhosts.conf
LoadModule vhost_alias_module modules/mod_vhost_alias.so
Speichern Sie die Datei und starten Sie Ihren Apache neu und es wird funktionieren. Vielen Dank an diesen Mann:
https://john-dugan.com/wamp-vhost-setup/
Ich komme sehr spät zu dieser Frage, ich habe alles getan, was von @RiggsFolly erwähnt wurde, aber eine Sache, die ich geändert habe, hat dazu geführt, dass es sofort funktioniert. ich habe mich verändert .dev
zu .test
da .dev reserviert ist. hoffe das hilft
Schauen Sie sich diese Module unkommentiert in httpd.conf an
- Proxy_Modul
- proxy_http_module
versuchen Sie dies auf Ihrer Apache httpd.config-Datei:
<VirtualHost *:80>
ServerName mysite.dev
DocumentRoot "g:\wamp\www\mysite\public"
SetEnv APPLICATION_ENV "development"
<Directory "g:\wamp\www\mysite\public">
DirectoryIndex index.php
Options All Includes Indexes
Options All Indexes FollowSymLinks
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>
Starten Sie Ihren Wamp-Server neu und geben Sie eine URL wie mysite.dev/ in Ihren Browser ein. hoffe es wird dir helfen. Danke.
Haben Sie so etwas ausprobiert?
– Darren
30. September 2014 um 5:34 Uhr
Verwenden Sie in der URL nur mysite.dev. und prüfe
– Roshan Dandgavhal
30. September 2014 um 5:36 Uhr
Und überprüfen Sie auch in Ihrer mysite\public, ob dort index.php vorhanden ist?
– Roshan Dandgavhal
30. September 2014 um 5:37 Uhr
@RoshanDandgavhal ja, die index.php ist da.
– Jason M
30. September 2014 um 5:54 Uhr
@ Darren Ich werde das versuchen.
– Jason M
30. September 2014 um 5:54 Uhr