www.project1.com
und www.project2.com
. httpd.conf
" und " httpd-vhosts.conf
" an die unten aufgeführten Änderungen angepasst. Wenn ich in meinem Browser www.project1.com
oder www.project2.com
eingebe, werden meine Webseiten erfolgreich auf dem Laptop geöffnet, auf dem der Server installiert ist.
Änderungen in der "hosts-Datei": Ich habe Folgendes an das Ende der Datei angehängt: -
127.0.0.1 localhost
127.0.0.1 www.project2.com
127.0.0.1 www.project1.com
Änderungen in der httpd.conf
-Datei: -
Include conf/extra/httpd-vhosts.conf
Änderungen in der httpd-vhosts
-Datei: -
NameVirtualHost *:80
<Directory "D:/websites/">
AllowOverride All
Order Deny,Allow
Allow from all
</Directory>
<VirtualHost 127.0.0.1>
DocumentRoot "D:/websites/wamp/www/"
ServerName localhost
</VirtualHost>
<VirtualHost 127.0.0.1>
DocumentRoot "D:/websites/project1/"
ServerName www.project1.com
</VirtualHost>
<VirtualHost 127.0.0.1>
DocumentRoot "D:/websites/project2/"
ServerName www.project2.com
</VirtualHost>
PC_1
zugreifen, da ich diese Webseiten über einen Browser in PC_2
öffnen kann (der mit dem Server)? (Ich meine jeden PC, der über LAN mit PC_1
verbunden ist.)Ändern Sie in Ihrer virtualhost-Anweisung 127.0.0.1
in *:80
. Fügen Sie, wie Gabriel erwähnt, der Host-Datei auf dem anderen Computer einen Eintrag hinzu, und fügen Sie Ihre Domäne hinzu, die der IP Ihres Servers zugeordnet werden soll.
Wenn Sie eine explizite IP-Adresse in die Direktive eingeben, überwacht Apache nur diese IP-Adresse. Der Platzhalter sagt jedoch, dass er an alle für ihn verfügbaren IPs bindet.
<VirtualHost *:80>
DocumentRoot "D:/websites/project1/"
ServerName www.project1.com
</VirtualHost>
Wenn sich Ihr Server beispielsweise auf 192.168.1.70 befindet, sieht der Eintrag des Hosts auf den anderen Computern in Ihrem LAN folgendermaßen aus:
192.168.1.70 www.project1.com
Starten Sie Apache neu und es sollte funktionieren.
Hinweis: Wenn Sie virtualhosts verwenden, verwendet Apache die erste Definition als Standardeinstellung, wenn keine Übereinstimmung zwischen der im HTTP-Anforderungsheader übergebenen Domäne und den in der Konfiguration festgelegten Sites-Einstellungen möglich ist Seite wurde angezeigt.
Sie haben Apache angewiesen, mit der NameVirtualHost *:80
-Direktive an alle IPs zu binden, haben jedoch keine Site für diese externe IP-Adresse eingerichtet. Hoffentlich hilft das!
Neben der Antwort von danp können Sie auf den virtuellen Host zugreifen, ohne die etc/hosts-Datei des Client-Computers ändern zu müssen, indem Sie dem virtuellen Host einen Port zuweisen. Dies ist ideal, wenn Sie mit einem mobilen oder Tablet-Gerät auf den Server zugreifen möchten:
Bearbeiten Sie die httpd.conf
-Datei des Servers unter:
\wamp\bin\Apache\apache2.2.x\conf\httpd.conf
Suchen Sie nach "Listen
" (um die Linie 61). Sie sollten Folgendes sehen, damit Apache auf Port 80 warten kann:
Listen 0.0.0.0:80
Listen [::0]:80
Fügen Sie die folgenden Zeilen hinzu, um den Überwachungsport 81
(oder einen beliebigen Port) zu überwachen:
Listen 0.0.0.0:81
Listen [::0]:81
Bearbeiten Sie die httpd-vhosts.conf
-Datei unter:
\wamp\bin\Apache\apache2.2.x\conf\extra\httpd-vhosts.conf
Ändern Sie Ihr "Virtual Host" - Tag in Port 81
:
<VirtualHost *:81>
DocumentRoot "D:/websites/project1/"
ServerName www.project1.com
</VirtualHost>
Starten Sie den Apache-Server neu.
Geben Sie auf dem Clientcomputer/Tablet/Mobiltelefon im Webbrowser die IP-Adresse des Servers (192.168.0.10
oder eine andere IP-Adresse) gefolgt von der Portnummer im folgenden Format ein:
http://192.168.0.10:81
Es gibt zwei Computer im lokalen Netzwerk.
Ein Computer (192.168.1.70) Setup (D:\wamp\bin\Apache\Apache2.2.11\conf\extra\httpd-vhosts.conf):
<VirtualHost *:80>
DocumentRoot "D:/websites/project1/"
ServerName www.project1.com
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "D:/websites/project2/"
ServerName www.project2.com
</VirtualHost>
B Computer-Setup (c:/windows/system32/drives/etc/hosts):
192.168.1.70 www.project1.com
192.168.1.70 www.project2.com
B Zugang A, Mein Projekt funktioniert.
Einige aktualisierte Punkte für die ausgewählte Antwort:
NameVirtualHost
wird nach der Apache-Version nicht mehr verwendet 2.3.11 und kann weggelassen werden.
In 2.3.11 und höher ist eine Kombination aus IP-Adresse und Port immer Das auf mehreren virtuellen Hosts verwendete namenbasierte virtuelle Hosting ist automatisch für diese Adresse aktiviert.
Da wir über das Hosting einer Website über LAN sprechen, legen wir eine -Anforderung * fest, um nur Verbindungen von IP-Adressen in Ihrem lokalen -Netzwerk zu akzeptieren. Auf einem allgemeinen Linksys-Router liegt die Standard-IP-Adresse, die jedem Gerät im Netzwerk zugewiesen ist, beispielsweise zwischen 192.168.1.100 bis 192.168.1.255. Sie können die Verbindung von allen Geräten im LAN mit der IP-Adresse 192.168.1.XXX mithilfe von Require ip 192.168.1
Zulassen.
Dadurch können Sie den Zugriff pro Projekt so konfigurieren, dass eine Über LAN verfügbar ist und eine andere nur lokal verfügbar ist.
# This will allow all LAN connections to www.project1.com
<VirtualHost *:80>
DocumentRoot "D:/websites/project1/"
<Directory "D:/websites/project1/">
Require local
Require ip 192.168.1
</Directory>
ServerName www.project1.com
</VirtualHost>
# This will allow only the machine hosting the website to access www.project2.com
<VirtualHost *:80>
DocumentRoot "D:/websites/project2/"
<Directory "D:/websites/project2/">
Require local
</Directory>
ServerName www.project2.com
</VirtualHost>
Ihre Site wird zwar nicht öffentlich bereitgestellt, ohne dass der Router den Datenverkehr an Port 80 an Ihren Host weiterleitet. Ich glaube jedoch, dass dies als bewährte Methode gilt. Dies ist insbesondere erforderlich, wenn Sie steuern möchten, welche Projekte Geräten im LAN zur Verfügung stehen.
Zur Erinnerung: Ihr Host-Computer sollte so konfiguriert sein, dass er eine statische IP-Adresse verwendet, Anstatt eine vom DHCP Ihres Routers zugewiesen zu bekommen. Da wir Die hosts-Datei anderer Geräte bearbeiten, um auf die IP des Servers zu verweisen, Möchten, dass sie nicht geändert wird.
* Ich füge dies hinzu, da es häufig Einschränkungen für den Zugriff auf einen lokalen Entwicklungsserver gibt und Sie diese speziell für Ihr lokales Netzwerk verfügbar machen müssen.
Sie müssen die hosts-Datei auf dem Computer ändern, von dem aus Sie die Seite anzeigen möchten.
Sie müssen sie der hosts-Datei auf dem anderen LAN-Computer hinzufügen.