it-swarm.com.de

Greifen Sie über LAN von einem anderen Computer auf den virtuellen Host zu

  • Ich verwende Windows 7 mit Wamp 2.2 Server. 
  • Ich habe zwei virtuelle Hosts eingerichtet: www.project1.com und www.project2.com
  • Ich habe die Dateien "hosts", " 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>


Jetzt; Wie kann ich auf diese Webseiten über einen Browser in 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.)

26
jatin3893

Ä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!

22
dmp

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:

  1. 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
    
  2. 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>
    
  3. Starten Sie den Apache-Server neu.

  4. 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
    
20
EdC

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.

5
W.F. Yang

Einige aktualisierte Punkte für die ausgewählte Antwort:

  1. 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.

  2. 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. 

  3. 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.

2
iyrin

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.

0
Gabriel Baker