Accéder à localhost (xampp) depuis un autre ordinateur via un réseau LAN - comment faire?

150

Je viens de mettre en place un réseau wi-fi à la maison. J'ai tous mes fichiers sur mon ordinateur de bureau (192.168.1.56) et je souhaite accéder à localhost depuis un autre ordinateur (192.168.1.2).

Sur mon bureau, je peux accéder à localhost via le http: // localhost normal . Apache fonctionne sur le port 80 comme d'habitude.

Que dois-je faire exactement pour y parvenir? Il existe de la documentation sur le net, mais elle ne fonctionne pas ou est trop fragmentaire et confuse à comprendre.

Je pense que je dois apporter des modifications au fichier httpd.conf de mon apache et au fichier hosts. Des idées sur les changements à apporter?

bcosynot
la source
2
Les personnes qui trouvent cette question pourraient être intéressées par Comment puis-je me connecter à cet hôte local à partir d'un autre ordinateur sur le même réseau? .
Martin Thoma
1
Voici ce que j'ai fait et travaillé pour moi sur Windows 10: allez dans cmd et tapez ipconfig, puis trouvez votre adresse ipv4 et renommez l'URL de votre site Web en cette adresse IP, par exemple: 192.168.0.2/example . Ensuite, recherchez dans les fenêtres "Autoriser une application via le pare-feu Windows", cliquez dessus, puis cliquez sur Modifier les paramètres et assurez-vous que le serveur apache http est coché. J'espère que ça aide
csandreas1
J'ai un site nommé app.sitename.com. Maintenant, je peux accéder au site dans un autre PC dans le même réseau en utilisant l'adresse IP. Comment accéder avec un sous-domaine. app.ipaddress.com ne fonctionne pas. Que dois-je faire pour ajouter un sous-domaine dans un PC distant?
vicky

Réponses:

112

Localhost est juste un nom donné pour le bouclage, par exemple, c'est comme se référer à vous-même en tant que "moi" ..

Pour l'afficher à partir d'autres ordinateurs, il est probable que vous n'ayez qu'à faire http://192.168.1.56 ou http: // myPcsName si cela ne fonctionne pas, il est possible qu'un pare-feu soit en cours d'exécution sur votre ordinateur, ou httpd.conf n'écoute que sur 127.0.0.1

BugFinder
la source
httpd.conf: Écoutez 80 si je dois apporter une modification à cela, que recommanderiez-vous?
bcosynot
1
Cela dit simplement écouter sur le port 80, il est probable qu'il écoute déjà. netstat -a, recherchez les éléments sur le port 80, il vous dira sur quelle (s) IP (s) il écoute
BugFinder
1
Voilà, cela signifie qu'il écoute toute demande sur le port 80, pas seulement localhost, donc, si votre PC s'appelait vr3609, alors http devrait vous conduire à votre site Web.
BugFinder
1
si vous http à l'adresse IP de votre serveur à partir du serveur, cela fonctionne-t-il? si tel est le cas, il suggère qu'un pare-feu sur le serveur bloque les autres machines pour y accéder.
BugFinder
1
Ok, 192.168.1.56, c'est celui avec le site Web à droite? Vous devez en regarder la configuration. Quel système d'exploitation fonctionne-t-il? Le logiciel de pare-feu sur celui-ci variera avec cela. Vous devez savoir quel logiciel de pare-feu se trouve dessus, puis déterminer comment lui ajouter le port 80 pour laisser entrer d'autres machines. Si ses fenêtres, il y a de fortes chances que cela fasse partie de votre logiciel antivirus, ou pourrait même être celui de Microsoft . Si ses chances sous Linux sont ses ipchains mais, c'est un tout nouveau domaine de question.
BugFinder
46

Merci pour une explication détaillée.

Juste pour élaborer, sous Windows, allez dans Panneau de configuration -> Pare-feu, dans les exceptions "ajoutez http et port 80". Ensuite, dans Services, cochez "http (port du serveur Web 80)" et "https (port du serveur Web 443)" UNIQUEMENT si vous avez besoin que https fonctionne également. Ok, OK, Fermer

Ensuite, allez sur n'importe quel ordinateur du réseau et tapez http: // nom-ordinateur (où vous modifiez le pare-feu et que xampp est en cours d'exécution) dans votre navigateur Web et des jours heureux :)

Raja
la source
7
Je suis allé dans Panneau de configuration> Pare-feu Windows> Autoriser une application via le Pare-feu Windows> Autoriser une autre application> Aller à: XAMPP / apache / bin / httpd.exe et je l'ai autorisé. Il fonctionne maintenant!
shasi kanth
Je vous remercie. Fonctionne très bien.
jewelhuq
Pour ajouter l'exception de pare-feu Windows, vous pouvez visiter ceci pour savoir comment: tomshardware.com/news/...
Alejandro Nava
37

c'est très facile

  1. Accédez à votre panneau de configuration XAMPP
  2. Cliquez sur apache> config> Apache (httpd.conf) entrez la description de l'image ici
  3. Recherchez Listen 80 et remplacez-le par Listen 8080
  4. Après cela, vérifiez votre adresse IP locale à l'aide de la commande ipconfig (console cmd)
  5. Recherchez ServerName localhost: 80 et remplacez-le par votre adresse IP locale: 8080 (ex.192.168.1.156: 8080)
  6. Après cela, ouvrez apache> config> Apache (httpd-xampp.conf) entrez la description de l'image ici
  7. Rechercher

       <Directory "C:/xampp/phpMyAdmin">
           AllowOverride AuthConfig
           **Require local**   Replace with   **Require all granted**
           ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
       </Directory>```
    
    
  8. Allez dans xampp> config> cliquez sur le paramètre de service et de port et modifiez le port Apache 8080

  9. redémarrer xampp
  10. puis frappez votre IP: 8080 (ex.192.168.1.156: 8080) depuis un autre ordinateur
Rahul Shewale
la source
si au lieu de tout graned ... jsut une adresse IP statique. comment ça serait?
Alejandro Maliachi Quintana
Ca ne fonctionne pas. dans mon pc, il fonctionne bien mais ne fonctionne pas depuis un autre pc.
MH Fuad
Cela ne fonctionne pas pour moi. J'obtiens une erreur de certificat: le certificat de serveur n'inclut PAS un ID qui correspond au nom du serveur
Jon Vote le
19

Voici les étapes à suivre lorsque vous souhaitez que votre application PHP soit installée sur un serveur LAN (pas sur le Web)

  1. Obtenez l'IP interne ou l'IP statique du serveur (Ex: 192.168.1.193)
  2. Ouvrez le fichier XAMPP> apache> conf> httpd.conf dans le bloc-notes
  3. Rechercher Listen 80
  4. La ligne ci-dessus se lirait comme- #Listen 0.0.0.0:80 / 12.34.56.78:80
  5. Changez l'adresse IP et remplacez-la par l'adresse IP statique
  6. Enregistrez le fichier httpd.conf en vous assurant que le serveur est pointé vers #Listen 192.168.1.193:80
  7. Dans la racine de l'application config.php (connexion db), remplacez localhost par l'adresse IP du serveur

Remarque: si le pare-feu est installé, assurez-vous d'ajouter les ports http 80 et 8080 aux exceptions et autorisez l'écoute. Allez dans Panneau de configuration> Pare-feu Windows> Autoriser un programme à communiquer via le pare-feu Windows> Ajouter un autre programme Nom: http Port: 80 Ajoutez-en un autre en tant que http - 8080

Si IIS (Microsoft .Net Application Internet Information Server) est installé avec une application Microsoft .Net déjà sur le serveur, il aurait déjà occupé 80 ports. Dans ce cas, remplacez #Listen 192.168.1.193:80 par #Listen 192.168.1.193:8080

J'espère que cela t'aides! :)

Shreedhar Bhat
la source
Cela a résolu le problème pour moi. Super truc! J'avais toujours supprimé l' #adresse IP locale devant l'adresse IP locale et cela ne fonctionnait pas.Lorsque j'ai inclus le hachage des commentaires, #cela a fonctionné immédiatement sans redémarrer la VM invitée, juste le service XAMPP Apache et il est là. Joli. Maintenant, comment puis-je le relier à mes VirutalHosts attribués sur la machine hôte?
lowtechsun
Pour accéder aux VirtualHosts attribués sur la machine hôte à partir de l'invité, je devais simplement entrer l'adresse IP de l'hôte et le nom du ou des serveurs VirtualHost dans le fichier HOSTS de l'invité. Terminé. Tout le monde sait comment récupérer le trafic du navigateur de l'invité vers le serveur Apache des hôtes avec Fiddler. Travaillez sur l'hôte mais n'obtenez pas de trafic de l'invité.
lowtechsun
Salut, qu'en est-il d'une plage d'adresses IP pour par exemple 192.168.1-100. Comment régler ça?
dkjain
6

Cela devrait être tout ce dont vous avez besoin pour une configuration de base

Ce type de configuration ne casse pas phpMyAdmin sur localhost

Une adresse IP statique est recommandée sur l'appareil exécutant le serveur

Cet exemple utilise l'adresse IP 192.168.1.x. Votre configuration réseau peut utiliser une adresse IP différente

Dans le httpd.conf d'Apache, vous devriez avoir:

# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to 
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80
Listen 80

Je laisserais le nom vide pour qu'il obtienne les valeurs par défaut:

# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#

Autorisez les machines invitées et vous-même. Par mesure de sécurité, vous pouvez éviter Autoriser de tout, mais utiliser à la place une adresse IP d'invité spécifique, par exemple Autoriser à partir de 192.168.1.xxx où xxx est l'adresse IP de l'ordinateur invité. Dans ce cas, vous devrez peut-être également prendre en compte les adresses IP statiques sur les machines invitées

# Controls who can get stuff from this server.
#
#    Require all granted
#   onlineoffline tag - don't remove
     Order Deny,Allow
#     Deny from all
     Allow from all 
     Allow from 127.0.0.1
     Allow from ::1
     Allow from localhost
     Allow from 192.168.1.*YOURguestIP*
     Allow from 192.168.1.*YOURselfIP*
</Directory>

Redémarrez tous les services et mettez en ligne à partir de l'icône de la barre d'état

Razaman
la source
6

Accédez à xampp-control dans la barre des tâches

xampp-control -> Apache --> Config --> httpd.conf

Le bloc-notes s'ouvrira avec le fichier de configuration

Rechercher

Écoutez 80

Une ligne au-dessus, il y aura quelque chose comme ceci: 12.34.56: 80

Changes le

12.34.56:80 --> <your_ip_address eg:192.168.1.5>:80

Redémarrez le service Apache et vérifiez-le, j'espère que cela devrait fonctionner ...

Joish
la source
5

Parfois, votre pare-feu peut être le problème. Assurez-vous d'avoir désactivé la surveillance de votre pare-feu antivirus. Cela a fonctionné pour moi.

Mateo Jovani
la source
4

Si vous utilisez XAMPP 1.8.3 Accédez au fichier httpd-xampp.conf et recherchez "# # New XAMPP security concept # server-status | server-info))">

     Require local
     ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
     </LocationMatch>

"

Coupez ce code et enregistrez-le quelque part pour une utilisation ultérieure, c'est-à-dire restaurer cette fonctionnalité (rappelez-vous que la suppression de ce code rend votre ordinateur vulnérable). Enregistrez les modifications sur httpd-xampp.conf, redémarrez les services sur XAMPP et c'est tout.

OnsareTM
la source
Pour XAMPP Version 7, «Require local» se trouve dans le fichier apache / conf / extra / httpd-vhosts.conf
vivanov
3

Si vous êtes connecté au réseau Wi-Fi, c'est beaucoup plus simple. Trouvez simplement l'IP sur lequel vous vous êtes connecté au Wi-Fi. Par exemple:

votre-ip est "10.10.55.67".

Ensuite, démarrez le serveur xampp sur votre machine.

Ensuite, sur tout autre ordinateur connecté au même Wi-Fi n / w, tapez

http://your-ip

Par exemple:http://10.10.55.67

Krishna M
la source
3

Cet outil m'a beaucoup sauvé, car je n'ai pas d'autorisation d'administrateur sur ma machine et que nodejs était déjà installé. Pour une raison quelconque, la configuration sur mon réseau ne me donne pas accès à d'autres machines pointant simplement l'adresse IP sur le navigateur.

# Using a local.dev vhost
$ browser-sync start --proxy

# Using a local.dev vhost with PORT
$ browser-sync start --proxy local.dev:8001

# Using a localhost address
$ browser-sync start --proxy localhost:8001

# Using a localhost address in a sub-dir
$ browser-sync start --proxy localhost:8080/site1

http://www.browsersync.io/docs/command-line/

Thiago C. S Ventura
la source
3

Accéder à l'hôte local à partir d'un périphérique distant

Prérequis : votre site Web est actuellement activé avec un outil tel que live-serverhttp://localhost:8081/

a) Publier sur le même réseau

Au sein du même réseau, vous pouvez accéder à votre machine avec votre adresse IP ou votre nom d'hôte actuel. Vous pouvez trouver l'adresse IP en cours d'exécution ipconfig | grep IPv4ou le nom d'hôte en envoyant un ping -aà cette adresse IP.

http://192.128.1.18:80/
http://hostname:80/

Remarque : pour de meilleurs résultats, utilisez le port 80, connectez-vous à un réseau privé et vérifiez les paramètres de votre pare-feu.

b) Publier sur n'importe quel réseau (plus facile)

  1. Opt 1 - Vous pouvez utiliser ngrok pour fournir une redirection de port sur les ports publics de ngrok

    Téléchargez ngrok et exécutez la commande suivante:

    $ ./ngrok http 8081
    

  2. Opt 2 - Vous pouvez utiliser localhost.run pour créer un tunnel ssh avec la commande suivante:

    ssh -R 80:localhost:8081 kylemit@ssh.localhost.run
    


Accéder au périphérique distant à partir des outils de développement locaux

Pour connecter les outils de développement de votre navigateur à un appareil connecté, suivez les instructions de la section Premiers pas avec le débogage à distance d'appareils Android.

  1. Sur votre téléphone, activez les options de développement et le débogage USB
  2. Branchez votre téléphone sur votre ordinateur via USB et définissez le protocole (pas le transfert de fichiers / médias)
  3. Ouvrez les outils de développement> Plus d'outils> Débogage à distance (essayez ici si l' appareil n'est pas détecté )

  4. Trouvez votre site et cliquez sur Inspecter qui ouvrira une nouvelle fenêtre d'inspecteur


Lectures complémentaires:

KyleMit
la source
1

Voici ce que j'ai fait et travaillé pour moi sur Windows 10 :

1) Hit windows + r et tapez cmd . Dans l'invite de commande, tapez ipconfig
2) recherchez votre adresse ipv4 et renommez l'URL de votre site Web en cette ip, par exemple: http://192.168.0.2/example .
3) Assurez-vous maintenant que votre pare - feu a accès au serveur HTTP Apache . Recherchez dans les fenêtres " Autoriser une application à travers le pare-feu Windows ", cliquez dessus puis en haut à droite, cliquez sur modifier les paramètres et assurez-vous que le serveur HTTP Apache a une coche sur la gauche et une sur le privé ou le public. J'espère que ça aide

Vous pouvez désormais accéder au site Web à partir d'autres PC du réseau local

csandreas1
la source
1

Accédez d'abord au centre de réseau et de partage de votre machine Windows et suivez simplement quelques étapes pour obtenir votre adresse IPv4. Il suffit de voir l'illustration de l'image

Mettez l'adresse IPv4 sur un autre navigateur d'ordinateur. exemple, http // 192.168.0.102

Remarque

  • Éteignez votre pare-feu Windows (si cela ne fonctionne pas, sinon c'est facultatif)
C'est Enam
la source
0

Commencez par accéder à l'invite de commande et tapez

Notepad C:/windows/system32/drivers/etc/hosts

puis ajoutez votre adresse ip ci-dessous puis l'url de votre site.

Ensuite, vous allez à l'invite de commande et tapez notepad c:/xampp/bin/apache/apache2.4.18/conf/extra/httpd-vhosts.conf

puis ajoutez ceci ci-dessous

documentroot "Directory of your site"
Allow from all
Require all granted
Carl James Omandam
la source
0
<Files ".ht*">
 Require all denied
</Files>

 replace to

<Files ".ht*">
 Require local
</Files>
asd
la source
<Files ".ht *"> Exiger local #Require all refusé </Files>
asd
3
Bienvenue dans Stack Overflow! Bien que cet extrait de code puisse résoudre la question, inclure une explication aide vraiment à améliorer la qualité de votre message. N'oubliez pas que vous répondez à la question aux lecteurs à l'avenir, et que ces personnes pourraient ne pas connaître les raisons de votre suggestion de code. Essayez également de ne pas surcharger votre code avec des commentaires explicatifs, cela réduit la lisibilité du code et des explications!
kayess
0

Remplacez Require Localpar Require all granteddans le xampp\apache\conf\extra\httpd-xampp.conffichier.

Sumit
la source
0

J'avais ce problème. J'utilisais XAMPP dans une machine virtuelle dont le paramètre réseau était "NAT". Je l'ai changé en "Bridged" et le problème a été résolu.

Vidhyadhar Dharmadhikari
la source
0

Hôte sur IP locale,

Ouvrez CMD: ipconfig

Adaptateur LAN sans fil Wi-Fi: adresse IPv4. . . . . . . . . . . : xx.xxx.xx.xxx

Vineesh TP
la source
0

Essayez simplement:

http://ipaddressofpcwhichhasdatabase:portnumber(80 by default)/filename.extension
Chinthan Narayan
la source
0

Si quelqu'un a encore du mal, cette chose simple a fonctionné pour moi:

  1. Sur votre système principal, disons Hosting PC ... Allez dans Panneau de configuration> Pare-feu Windows Defender> Autoriser une application ou une fonctionnalité via le Pare-feu Windows Defender> Modifier les paramètres> Rechercher "Apache HTTP Server"> Cochez les deux cases (sous Privé et Publique). Voir la capture d'écran

    • Dans mon cas, il y avait deux entrées "Apache HTTP Server", j'ai donc coché les deux cases pour les deux entrées.
  2. Sur tout autre système connecté sur un même réseau ... Ouvrez navigateur> tapez: l'adresse IP de votre hébergeur suivi du nom de votre projet dans la barre d'url. Exemple: 192.168.72.111/example.com/

J'espère que ça aide! Merci.

nareshsr
la source
-1

J'essayais donc de résoudre un problème similaire avec la connexion à un serveur totalement différent sur mon propre réseau local afin que, lorsque l'alimentation est interrompue puis rétablie, mon serveur revienne en ligne et d'autres systèmes puissent toujours avoir une connectivité avec l'automatisation. Cependant, mon problème était que DHCP donnait à mon serveur une adresse IP différente à l'occasion. Ce fil a répondu à mon problème avec le NAMESERVER que Windows a nativement. Je me connectais directement à l'adresse IP de mes serveurs, ajoutez http://192.168.1.5 via un fichier batch pour initialiser la connexion, mais lorsque des problèmes d'alimentation surviennent, il ne se connecte pas. J'ai changé le fichier .bat pour qu'il pointe vers http: // DESKTOP-actualnamewhereserver: portEt.. Voila. Problème résolu. SI je ne change pas les noms de mes ordinateurs, lorsque DHCP attribuera une nouvelle adresse IP au DESKTOP-actualnamewhereserver, il s'identifiera toujours comme son propre nom sur le LAN et pourra donc accepter la connexion quelle que soit son adresse IP. Donnez simplement aux autres personnes sur votre LAN sans fil le nom de votre PC hébergeant le serveur Apache et disons que son nom est DESKTOP-DOUGHFACTORYHUT, ils taperont http: // DOUGHFACTORYHUT: 80 ou quel que soit le numéro de port que votre configuration apache est configurée pour héberger à comme LOCALHOST: 80 qui sont essentiellement la même chose attachée à votre adresse IP dynamique locale attribuée par DHCP ou IP STATIQUE que vous avez définie sur le serveur.

Mark Hartman
la source
-2

Je suis entièrement d'accord avec BugFinder.

En termes simples, il suffit de mettre l'adresse IP 192.168.1.56 dans votre navigateur fonctionnant sur 192.168.1.2 !

si cela ne fonctionne pas, les raisons possibles sont les suivantes:

  1. Problème de connectivité réseau:

    • Tout d'abord, vérifiez la connectivité de votre réseau à l'aide de la commande ping 192.168.1.56 dans l'invite de commande / le terminal de l'ordinateur 192.168.1.2.
  2. Problème de pare-feu: votre paramètre de pare-feu Windows n'a pas de règle d'autorisation pour XAMPP (apache). (Problème le plus probable)

    • (solution) accédez aux paramètres avancés du pare-feu et ajoutez des règles entrantes et sortantes pour le fichier exécutable Apache.
  3. Problème de configuration Apache. : Votre apache est configuré pour écouter uniquement les requêtes locales.

    • (Solution) vous pouvez le faire en ouvrant le fichier httpd.conf et en remplaçant Listen 127.0.0.1:80 par Listen 80 ou * Listen : 80
  4. Conflit de port avec d'autres serveurs (IIS, etc.)

    • (Solution) Éteignez le serveur Apache, puis ouvrez l'hôte local dans le navigateur. si une réponse est obtenue, désactivez ce serveur puis démarrez Apache.

si tout ce qui précède ne fonctionne pas, il y a probablement un problème de configuration sur votre serveur apache.try pour le découvrir, sinon il suffit de le réinstaller et de transférer tous les fichiers php (htdocs) vers la nouvelle installation de XAMPP / WAMP.

Smit Patel
la source
1
Tout d'abord, cet article a 5 ans, donc cette réponse ne sera probablement pas utile au PO. Deuxièmement, vous pouvez utiliser Markdown pour améliorer la mise en forme de votre réponse afin de la rendre plus lisible et plus facile à suivre. Croyez-moi, c'est une bonne chose à savoir. :-)
Isiah Meadows
-3

Pour exécuter le serveur Nodejs sur le réseau

const port = process.env.PORT || 3000; 
const server = http.createServer( 
server.listen(port, '0.0.0.0', ()  => console.log(`Server started on port ${port}`)
));

exécutez http: // yournetworkipaddress: 3000 pour accéder à votre application sur le réseau local (LAN)

Étapes pour trouver votre adresse IP de réseau.

MacOS

  1. Allez dans Préférences Système> Réseau
  2. Vérifiez l'adresse IP du réseau sous le connecté.
Sumit Kasana
la source