Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Virtueller WAMP-Host funktioniert nicht

Zuerst müssen Sie den Beispiel-Dummy entfernen Definitionen aus Ihrer Datei vhost-httpd.conf. Sie sind dort nur beispielhaft nur um Ihnen den Einstieg in die Syntax zu erleichtern, und sollte nicht in einer aktiven conf/extra/httpd-vhosts.conf verbleiben 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 unterstützt Apache 2.4.x IPV4 ( 127.0.0.1 ) und IPV6 (::1), sodass Ihre 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 des <VirtualHost>....</VirtualHost> -Abschnitt teilt Apache mit, von welchen IP-Adressen er Verbindungen annehmen darf, 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, d. h. 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. Verwenden Sie also nicht

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 die 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 Zugriff auf Ihre 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 verwenden Sie für jeden in Ihrem lokalen Netzwerk 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. B.

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 die Phase der Portweiterleitung erreichen, wird Ihr Router so, dass die Welt in Ihr Netzwerk eingelassen wird, was ALLE IHRER SITES verursachen würde der Welt verfügbar zu machen.

Es ist besser, die EINE virtuelle Host-Definition für die EINE Website, die die Leute zum Testen/Angeben sehen sollen, von Require local zu ändern bis 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 mit Runs as Administrator gestartet wurde Option.

net stop dnscache
net start dnscache
ipconfig /flushdns