web-dev-qa-db-fra.com

Comment accéder à un site Web via un réseau local que localhost a changé en un nom de domaine

J'ai un problème pour accéder au site Web que j'ai créé sur le serveur XAMPP à partir d'un autre appareil du réseau.

J'ai déjà changé le fichier HOSTS:

# localhost name resolution is handled within DNS itself.
#   127.0.0.1       localhost
#   ::1             localhost

127.0.0.1 example.com

et le C:\xampp\Apache\conf\extra\httpd-vhosts.conf

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot "C:\xampp\htdocs\Example"
</VirtualHost>

Je peux accéder au nom de domaine que j'ai créé dans mon navigateur, mais lorsque je le recherche à partir d'un autre appareil, le serveur DNS affiche une erreur de ce type. Existe-t-il un autre moyen d'accéder au site Web sans avoir à modifier le fichier HOSTS de l'appareil?

1
Angelica

Notez que 127.0.0.1 est spécial. Il fait toujours référence à "localhost", c'est-à-dire. l'ordinateur/périphérique à partir duquel vous faites la demande. Vous devez utiliser l'adresse IP privée de l'ordinateur sur votre réseau local.

@dan a abordé la méthode requise dans les commentaires:

Vous devez créer un enregistrement A dans la table DNS de votre domaine et pointer celui-ci sur l'adresse IP publique de votre routeur, puis transférer le port 80 à l'adresse IP privée (par exemple, 192.168.0.2) de votre ordinateur local exécutant Apache. Vous devrez également désactiver les règles de pare-feu pour le port 80 sur cet ordinateur. Plus facile que tout ce qui précède consiste toutefois à utiliser l'adresse IP privée comme URL dans vos autres appareils, mais vous devrez toujours désactiver le pare-feu pour l'ordinateur exécutant Apache.

Toutefois, si vous devez uniquement pouvoir accéder à votre site à partir d'autres périphériques du même réseau local, vous pouvez simplement définir l'enregistrement publicA dans le DNS sur le privé). Adresse IP (par exemple 192.168.0.2) de votre ordinateur local exécutant votre serveur Web. Puisque vous ne travaillez qu'avec des périphériques déjà sur votre réseau local, vous n'avez probablement aucun paramètre de pare-feu à mettre à jour (en fonction de la taille et de la complexité de votre réseau local). Seuls les périphériques du réseau local pourront accéder à l'adresse IP interne/privée. .

(Si vous utilisez directement l'adresse IP privée - comme le suggère dan -, vous ne pourrez activer qu'un site de développement à la fois sur votre serveur.)

Il serait plus facile de l'implémenter en tant que sous-domaine de votre domaine principal, plutôt que de prendre en charge l'ensemble du domaine. Cela permettrait alors à votre serveur de développement local d'être disponible (uniquement à partir de votre réseau local) en même temps que le site Web public en direct. par exemple. Votre site Web public principal est disponible à l'adresse www.example.com et votre serveur de développement local à l'adresse local.example.com (qui est simplement configuré comme un enregistrement A sur l'adresse IP privée de votre serveur Web sur votre réseau local. ).

En utilisant des hôtes virtuels nommés sur votre serveur de développement, vous définiriez ensuite le sous-domaine comme étant le ServerName:

<VirtualHost *:80>
    ServerName local.example.com
    DocumentRoot "C:\xampp\htdocs\Example"
</VirtualHost>

L'utilisation de cette méthode permet à tous les périphériques de votre réseau local d'accéder à votre site sans avoir à modifier des fichiers HOSTS individuels (ni remplacer le DNS) sur ces périphériques. Notez que sur certains appareils mobiles, vous devez désactiver l'option "économiseur de données", car cela nécessite que le site Web soit public (les serveurs "économiseur de données" ne pourront tout simplement pas faire les demandes requises).

0
DocRoot