Accéder à l'hôte virtuel à partir D'une autre machine via LAN

  • J'utilise Windows 7 avec WAMP 2.2 server.
  • j'ai mis en place 2 serveurs virtuels:www.project1.com et www.project2.com.
  • j'ai modifié le " hosts",httpd.conf et httpd-vhosts.conf fichiers, aux changements que j'ai mentionnés ci-dessous.

utiliser mon navigateur, quand je tape www.project1.com ou www.project2.com, j'ai réussi à ouvrir mes pages web sur l'ordinateur portable sur lequel le serveur est installé.

enfichier hosts": j'ai ajouté les suivants à la fin du fichier: -

127.0.0.1       localhost
127.0.0.1       www.project2.com
127.0.0.1       www.project1.com

Changements dans le httpd.conf fichier:-

Include conf/extra/httpd-vhosts.conf

changements dans httpd-vhosts fichier:-

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>


Maintenant, puisque je peux ouvrir ces pages web à partir d'un navigateur dans PC_1 (l'un avec le serveur), comment puis-je accéder à ces pages web à partir d'un navigateur <!--12? (Je veux dire tout PC connecté à PC_1 via LAN.)
25
demandé sur someOne 2012-06-28 17:01:04

5 réponses

dans votre directive virtualhost, changez 127.0.0.1*:80 et comme Gabriel l'a mentionné, ajoutez une entrée au fichier hosts dans l'autre machine, en ajoutant votre domaine pour être associé à L'IP de votre serveur.

lorsque vous mettez une adresse IP explicite dans la directive, apache n'écoute que sur cette adresse IP - mais le Joker indique qu'il se lie à toutes les adresses IP disponibles.

<VirtualHost *:80>
    DocumentRoot "D:/websites/project1/"
    ServerName www.project1.com
</VirtualHost>

si votre serveur est sur 192.168.1.70 par exemple, alors dans les autres machines sur votre lan, le hosts entry ressemblera à:

192.168.1.70     www.project1.com

redémarrez apache et ça devrait marcher.

A noter que lorsque vous utilisez virtualhosts, apache utilisera la première définition par défaut pour les cas où il ne peut pas faire de correspondance entre le domaine passé dans L'en-tête de la requête HTTP et les sites configurés dans la configuration, ce qui explique l'apparition de votre page par défaut.

vous avez dit à apache de se lier à tous les IPs avec le NameVirtualHost *:80 mais n'a pas créé de site pour cela IP externe. Espérons que ça aide!

21
répondu dmp 2012-07-05 10:44:48

en plus de la réponse de danp, vous pouvez accéder à l'hôte virtuel sans avoir à modifier le fichier etc/hosts de la machine client en assignant un port à l'hôte virtuel. C'est idéal si vous souhaitez accéder au serveur avec un mobile ou une tablette:

  1. Modifier le serveur httpd.conf fichier:

    \wamp\bin\apache\apache2.2.x\conf\httpd.conf
    

    Rechercher "Listen" (autour de la ligne 61). Vous devriez voir ce qui suit qui permet à Apache d'écouter le port 80:

    Listen 0.0.0.0:80
    Listen [::0]:80
    

    ajouter les lignes suivantes pour ajouter listening for port 81 (ou n'importe quel port):

    Listen 0.0.0.0:81
    Listen [::0]:81
    
  2. éditer le httpd-vhosts.conf fichier:

    \wamp\bin\apache\apache2.2.x\conf\extra\httpd-vhosts.conf
    

    Modifier "Virtual Host" balise de port 81:

    <VirtualHost *:81>
        DocumentRoot "D:/websites/project1/"
        ServerName www.project1.com
    </VirtualHost>
    
  3. redémarrez le serveur Apache.

  4. sur le client machine/tablette/mobile, sur le navigateur web, entrez L'adresse IP du serveur (192.168.0.10, ou N'importe quelle IP) suivi du numéro de port dans le format suivant:

    http://192.168.0.10:81
    
19
répondu EdC 2017-10-10 18:31:05

il y a deux ordinateurs dans le réseau local.

<VirtualHost *:80>
    DocumentRoot "D:/websites/project1/"
    ServerName www.project1.com
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "D:/websites/project2/"
    ServerName www.project2.com
</VirtualHost>

B Configuration de l'ordinateur(c:/windows/system32/drives/etc/hosts):

192.168.1.70    www.project1.com
192.168.1.70    www.project2.com

B accès A, mon projet fonctionne.

5
répondu W.F. Yang 2014-02-23 06:44:03

Un couple de mises à jour des points à prendre en compte pour la réponse choisie:

  1. NameVirtualHost n'est plus utilisé après la version Apache 2.3.11 et peut être omis.

    en 2.3.11 et plus tard, chaque fois qu'une adresse IP et une combinaison de ports est utilisé dans plusieurs hôtes virtuels, l'hébergement virtuel par nom est automatiquement activé pour cette adresse.

  2. parce que nous parlons d'héberger un site web sur LAN, nous allons définir un exigence* pour n'accepter que des connexions à partir d'adresses IP sur votre réseau local. Par exemple, sur un routeur Linksys commun, le L'IP attribuée à chaque périphérique sur le réseau se situe entre 192.168.1.100 à 192.168.1.255. Vous pouvez autoriser la connexion de tous les périphériques sur le Réseau local avec une adresse IP 192.168.1.XXX en utilisant Require ip 192.168.1 (notez que l'octet final est laissé hors de L'IP pour permettre la totalité gamme.)

    cela vous permet de configurer l'accès par projet pour qu'on puisse être disponible sur LAN et un autre N'est disponible que localement.

    # 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>
    

    bien que votre site ne sera pas desservi publiquement sans que le routeur achemine le trafic sur le port 80 à votre hôte, je crois que c'est considéré comme une bonne pratique. Il est particulièrement nécessaire si vous avez besoin de contrôler quels projets sont disponibles pour les appareils sur le LAN.

  3. Rappel: votre machine hôte doit être configurée pour utiliser une adresse IP statique au lieu d'être assigné par votre routeur DHCP. Depuis que nous sommes éditer le fichier hosts d'autres périphériques pour pointer vers L'IP du serveur, nous ne voulons pas qu'il change.

* j'inclus ceci parce qu'il est courant d'avoir des restrictions d'accès sur un serveur de développement local et que vous aurez besoin de le rendre spécifiquement disponible pour votre réseau local.

2
répondu iyrin 2017-03-24 08:09:26

vous devez changer le fichier hosts sur la machine à partir de laquelle vous essayez de visualiser la page.

vous devez donc les ajouter au fichier hosts sur l'autre machine lan.

0
répondu Gabriel Baker 2012-06-28 13:02:59