Accedere a localhost (xampp) da un altro computer sulla rete LAN - come?


150

Ho appena creato una rete Wi-Fi a casa. Ho tutti i miei file sul mio computer desktop (192.168.1.56) e voglio accedere a localhost da un altro computer (192.168.1.2).

Sul mio desktop posso accedere a localhost tramite il normale http: // localhost . Apache è in esecuzione sulla porta 80 come al solito.

Cosa devo fare esattamente per raggiungere questo obiettivo? C'è una documentazione in rete, ma o non funzionano o sono troppo frammentati e confusi per capire.

Penso di dover apportare modifiche al file httpd.conf del mio apache e al file hosts. Qualche idea su quali modifiche apportare?


2
Le persone che trovano questa domanda potrebbero essere interessate a Come posso connettermi a questo localhost da un altro computer sulla stessa rete? .
Martin Thoma,

1
Ecco cosa ho fatto e lavorato per me su Windows 10: vai su cmd e digita ipconfig, quindi trova il tuo indirizzo ipv4 e rinomina l'URL del tuo sito web in quell'ip, ad esempio: 192.168.0.2/esempio . Quindi cerca Windows "Consenti a un'app attraverso il firewall di Windows" fai clic su di essa, quindi fai clic su modifica impostazioni e assicurati che il server http apache sia selezionato. Spero che sia d'aiuto
csandreas1,

Sto avendo un sito chiamato app.sitename.com. Ora posso accedere al sito su un altro PC nella stessa rete utilizzando l'indirizzo IP. Come accedere con il sottodominio. app.ipaddress.com non funziona. Cosa devo fare per aggiungere un sottodominio nel PC remoto?
vicky

Risposte:


112

Localhost è solo un nome dato per il loopback, ad esempio è come riferirsi a te stesso come "me".

Per vederlo da altri computer, è probabile che tu debba fare solo http://192.168.1.56 o http: // myPcsName se non funziona, c'è la possibilità che ci sia un firewall in esecuzione sul tuo computer o httpd.conf è in ascolto solo su 127.0.0.1


httpd.conf: Ascolta 80 se devo apportare una modifica a questo, cosa consiglieresti?
bcosynot,

1
Questo dice solo ascoltare sulla porta 80, è probabile che sia già in ascolto. netstat -a, cerca elementi sulla porta 80, ti dirà su quale IP sta ascoltando
BugFinder

1
Ecco fatto, significa che è in ascolto di qualsiasi richiesta sulla porta 80, non solo localhost, quindi, se il tuo PC è stato chiamato vr3609, allora http dovrebbe portarti sul tuo sito web.
BugFinder

1
se si http all'indirizzo IP del server dal server, funziona? in tal caso, sta suggerendo che esiste un firewall sul server che blocca l'accesso ad altre macchine.
BugFinder

1
Ok, 192.168.1.56, questo è quello con il sito Web sulla destra? Devi guardare la sua configurazione. Quale sistema operativo viene eseguito? Quale software firewall è presente varierà con quello. Devi scoprire quale software firewall è su di esso e quindi capire come aggiungere la porta 80 ad esso per far entrare altre macchine. Se le sue finestre, è probabile che faccia parte del tuo software antivirus, o, potrebbe anche essere quella di Microsoft . Se le sue possibilità per Linux sono le sue ipchain ma è una nuova area di discussione.
BugFinder

46

Grazie per una spiegazione dettagliata.

Solo per elaborare, in Windows, vai su Pannello di controllo -> Firewall, ad eccezione di "aggiungi http e porta 80". Quindi in Servizi spunta "http (porta web server 80)" e "https (porta web server 443)" SOLO se hai bisogno di https per funzionare anche. Ok, OK, Chiudi

Quindi vai su qualsiasi computer in rete e digita http: // nome-computer (dove cambi il firewall e ha xampp in esecuzione su di esso) nel tuo browser Web e giorni felici :)


7
Sono andato su Pannello di controllo> Windows Firewall> Consenti un'app tramite Windows Firewall> Consenti un'altra app> Cerca in: XAMPP / apache / bin / httpd.exe e l'ho permesso. Funziona ora!
Shasi Kanth,

Grazie. Funziona bene.
jewelhuq,

Per aggiungere l'eccezione di Windows Firewall, puoi visitare questo per sapere come: tomshardware.com/news/…
Alejandro Nava,

37

è molto facile

  1. Vai al tuo pannello di controllo XAMPP
  2. Fai clic su apache> config> Apache (httpd.conf) inserisci qui la descrizione dell'immagine
  3. Cerca Listen 80 e sostituiscilo con Listen 8080
  4. Dopodiché controlla il tuo IP locale usando ipconfig comando (console cmd)
  5. Cerca ServerName localhost: 80 e sostituiscilo con il tuo ip locale: 8080 (ex.192.168.1.156: 8080)
  6. Successivamente apri apache> config> Apache (httpd-xampp.conf) inserisci qui la descrizione dell'immagine
  7. Cercare

       <Directory "C:/xampp/phpMyAdmin">
           AllowOverride AuthConfig
           **Require local**   Replace with   **Require all granted**
           ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
       </Directory>```
    
    
  8. Vai su xampp> config> fai clic su servizio e impostazioni della porta e cambia la porta apache 8080

  9. riavvia xampp
  10. quindi premi il tuo IP: 8080 (ex.192.168.1.156: 8080) da un altro computer

se invece di tutto graned ... jsut un IP statico. come sarebbe?
Alejandro Maliachi Quintana,

non funziona. nel mio pc funziona benissimo ma non funziona da un altro pc.
MH Fuad,

Questo non funziona per me. Ricevo un errore del certificato: il certificato del server NON include un ID che corrisponde al nome del server
Jon Vote

19

Questi sono i passaggi da seguire quando si desidera che l'applicazione PHP sia installata su un server LAN (non sul Web)

  1. Ottieni l'IP interno o IP statico del server (es: 192.168.1.193)
  2. Apri il file XAMPP> apache> conf> httpd.conf nel blocco note
  3. Cerca Ascolta 80
  4. Sopra la riga si legge come #Listen 0.0.0.0:80 / 12.34.56.78:80
  5. Modificare l'indirizzo IP e sostituirlo con l'IP statico
  6. Salvare il file httpd.conf assicurandosi che il server sia puntato su #Listen 192.168.1.193:80
  7. Nell'applicazione root config.php (connessione db) sostituire localhost con l'indirizzo IP del server

Nota: se è installato il firewall, assicurarsi di aggiungere le porte http 80 e 8080 alle eccezioni e consentire l'ascolto. Vai a Pannello di controllo> Windows Firewall> Consenti a un programma di comunicare tramite Windows Firewall> Aggiungi un altro programma Nome: http Porta: 80 Aggiungi un altro come http - 8080

Se IIS (Microsoft .Net Application Internet Information Server) è installato con qualsiasi applicazione Microsoft .Net già sul server, allora avrebbe già occupato 80 porte. In tal caso, modificare #Listen 192.168.1.193:80 in #Listen 192.168.1.193:8080

Spero che questo ti aiuti! :)


Questo mi ha risolto. Roba fantastica! Avevo sempre eliminato il #davanti all'indirizzo IP locale e non funzionava, quando ho incluso l'hash del commento #ha funzionato fuori dalla scatola senza riavviare la VM guest, solo il servizio Apache XAMPP e bang è lì. Ben fatto. Ora come posso ottenere il collegamento ai miei VirutalHosts assegnati sul computer host?
lowtechsun,

Per accedere ai VirtualHosts assegnati sulla macchina Host dal guest, dovevo semplicemente inserire l'IP Host e il nome del server VirtualHost nel file HOSTS del Guest. Fatto. Qualcuno sa come raccogliere traffico dal browser del Guest al server Apache Host con Fiddler. Lavora sull'host ma non ricevi traffico dall'ospite.
lowtechsun

Ciao, che ne dici di un intervallo di indirizzi IP per esempio 192.168.1-100. Come impostarlo?
dkjain,

6

Questo dovrebbe essere tutto ciò che serve per una configurazione di base

Questo tipo di configurazione non interrompe phpMyAdmin su localhost

Si consiglia un IP statico sul dispositivo che esegue il server

Questo esempio utilizza l'IP 192.168.1.x. La configurazione della rete potrebbe utilizzare un IP diverso

Nel httpd.conf in Apache dovresti avere:

# 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

Lascerei vuoto il nome in modo da ottenere le impostazioni predefinite:

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

Consenti alle macchine ospiti e te stesso. Per motivi di sicurezza, è possibile evitare Consenti da tutti ma utilizzare invece l'IP guest specifico, ad esempio Consenti da 192.168.1.xxx, dove xxx è l'IP del computer guest. In questo caso potrebbe essere necessario considerare anche gli IP statici sui computer guest

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

Riavvia tutti i servizi e Metti online dall'icona nella barra delle applicazioni


6

Vai a xampp-control nella barra delle applicazioni

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

Il blocco note si aprirà con il file di configurazione

Cercare

Ascolta 80

Una riga sopra di essa, ci sarà qualcosa del genere: 12.34.56: 80

Cambiarlo

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

Riavvia il servizio apache e controllalo, si spera che funzioni ...


5

A volte il tuo firewall può essere il problema. Assicurati di aver disabilitato il monitoraggio del firewall antivirus. Ha funzionato per me.


4

Se stai usando XAMPP 1.8.3 Passa al file httpd-xampp.conf e cerca "# # Nuovo concetto di sicurezza XAMPP # stato-server | informazioni-server))">

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

"

Taglia questo codice e salvalo da qualche parte per un uso successivo, ad esempio ripristinando questa funzione (ricorda di rimuovere questo codice rende il tuo computer vulnerabile). Salva le modifiche su httpd-xampp.conf, riavvia i servizi su XAMPP e il gioco è fatto.


Per XAMPP versione 7, "Richiedi locale" si trova nel file apache / conf / extra / httpd-vhosts.conf
vivanov,

3

Se sei connesso alla rete Wi-Fi, allora è molto più semplice. Basta trovare l'IP in cui ti sei connesso al Wi-Fi. Per esempio:

your-ip è "10.10.55.67".

Quindi avviare il server xampp nel computer.

Quindi, in qualsiasi altro computer collegato allo stesso Wi-Fi n / w, digitare

http://your-ip

Per esempio:http://10.10.55.67


3

Questo strumento mi ha salvato molto, poiché non ho i permessi di amministratore sulla mia macchina e avevo già installato nodejs. Per qualche motivo la configurazione sulla mia rete non mi dà accesso ad altre macchine semplicemente indicando l'IP sul browser.

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


3

Accedi a localhost da Dispositivo remoto

Prerequisito : il tuo sito Web è attualmente attivo con uno strumento come live-serverhttp://localhost:8081/

a) Pubblica sullo stesso rete

All'interno della stessa rete, puoi accedere al tuo computer con il tuo attuale indirizzo IP o nome host. Puoi trovare l'indirizzo IP in esecuzione ipconfig | grep IPv4o il nome host inviando a ping -aa quell'ip.

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

Nota : per risultati ottimali, utilizzare la porta 80, connettersi su una rete privata e controllare le impostazioni del firewall.

b) Pubblica su qualsiasi rete (più semplice)

  1. Opzione 1 : è possibile utilizzare ngrok per fornire il port forwarding sulle porte pubbliche di ngrok

    Scarica ngrok ed esegui il seguente comando:

    $ ./ngrok http 8081
    

  2. Opzione 2 : è possibile utilizzare localhost.run per creare un tunnel ssh con il seguente comando:

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


Accedi al dispositivo remoto da Local Dev Tools

Per connettere gli strumenti di sviluppo del browser con un dispositivo connesso, seguire le istruzioni in Introduzione al debug remoto dei dispositivi Android

  1. Sul telefono, abilita Opzioni sviluppatore e Debug USB
  2. Collega il telefono al computer tramite USB e imposta il protocollo (non Trasferimento file / media)
  3. Apri Strumenti di sviluppo> Altri strumenti> Debug remoto (prova qui se il dispositivo non viene rilevato )

  4. Trova il tuo sito e fai clic su Ispeziona per aprire una nuova finestra di ispezione


Ulteriori letture:



1

Ecco cosa ho fatto e lavorato per me su Windows 10 :

1) Premi Windows + R e digita cmd . Nel prompt dei comandi digitare ipconfig
2) trova il tuo indirizzo ipv4 e rinomina l'URL del tuo sito web in quell'ip, ad esempio: http://192.168.0.2/example .
3) Ora assicurati che il tuo firewall abbia accesso al server HTTP Apache . Cerca in Windows " Consenti a un'app attraverso il firewall di Windows " fai clic su di essa, quindi in alto a destra fai clic su Modifica impostazioni e assicurati che il server HTTP Apache abbia un segno di spunta a sinistra e uno su privato o pubblico. Spero che sia d'aiuto

Ora puoi accedere al sito Web da altri PC nella lan


1

Per prima cosa vai al centro di rete e condivisione del tuo computer Windows e segui solo alcuni passaggi per ottenere il tuo indirizzo IPv4. Basta vedere l'illustrazione dell'immagine

Inserisci l'indirizzo IPv4 sul browser di un altro computer. esempio, http // 192.168.0.102

Nota

  • Turn Of Windows Firewall (se non funziona, altrimenti è facoltativo)

0

Per prima cosa vai al prompt dei comandi e digita

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

quindi aggiungi il tuo indirizzo IP di seguito, quindi l'URL del tuo sito.

Quindi vai al prompt dei comandi e digita notepad c:/xampp/bin/apache/apache2.4.18/conf/extra/httpd-vhosts.conf

quindi aggiungilo qui sotto

documentroot "Directory of your site"
Allow from all
Require all granted

0
<Files ".ht*">
 Require all denied
</Files>

 replace to

<Files ".ht*">
 Require local
</Files>

<Files ".ht *"> Richiedi # locale richiede tutto negato </files>
asd

3
Benvenuto in Stack Overflow! Mentre questo frammento di codice può risolvere la domanda, inclusa una spiegazione aiuta davvero a migliorare la qualità del tuo post. Ricorda che stai rispondendo alla domanda per i lettori in futuro e che queste persone potrebbero non conoscere i motivi del tuo suggerimento sul codice. Si prega inoltre di cercare di non riempire il codice con commenti esplicativi, questo riduce la leggibilità sia del codice che delle spiegazioni!
Kayess,

0

Sostituisci Require Localcon Require all grantedin xampp\apache\conf\extra\httpd-xampp.conffile.


0

Stavo avendo questo problema. Stavo usando XAMPP in una macchina virtuale con impostazioni di rete come "NAT". L'ho cambiato in "Bridged" e il problema è stato risolto.


0

Host in IP locale,

Apri CMD: ipconfig

Adattatore LAN wireless Wi-Fi: indirizzo IPv4. . . . . . . . . . . : xx.xxx.xx.xxx


0

Prova:

http://ipaddressofpcwhichhasdatabase:portnumber(80 by default)/filename.extension

0

Se qualcuno lo trova ancora difficile, questa semplice cosa ha funzionato per me:

  1. Sul tuo sistema principale diciamo Hosting PC ... Vai su Pannello di controllo> Windows Defender Firewall> Consenti a un'app o funzionalità tramite Windows Defender Firewall> Modifica impostazioni> Trova "Server HTTP Apache"> Seleziona entrambe le caselle di controllo (in Privato e Pubblico). Vedi Screenshot

    • Nel mio caso c'erano due voci "Server HTTP Apache", quindi ho selezionato entrambe le caselle di controllo per entrambe le voci.
  2. Su qualsiasi altro sistema connesso su una stessa rete ... Apri browser> tipo: l'indirizzo IP del tuo PC di hosting seguito dal nome del tuo progetto nella barra degli indirizzi. Esempio: 192.168.72.111/example.com/

Spero che sia d'aiuto! Grazie.


-1

Quindi stavo cercando di risolvere un problema simile con la connessione a un server completamente diverso sulla mia LAN in modo che quando l'alimentazione viene interrotta e poi ripristinata, il mio server ritorna online e altri sistemi possono ancora avere connettività con l'automazione. Tuttavia, il mio problema era DHCP che occasionalmente forniva al mio server un IP diff. Questo thread ha risposto al mio problema con NAMESERVER che Windows ha nativamente. Mi stavo connettendo direttamente al mio IP server aggiungendo http://192.168.1.5 tramite un file batch per inizializzare la connessione ma quando si verificano problemi di alimentazione non si connette. Ho modificato il file .bat in modo che punti a http: // DESKTOP-actualnamewhereserver: porte fatto. Problema risolto. Se non cambio i nomi dei miei computer, allora quando DHCP passa a DESKTOP-actualnamewhereserver un nuovo indirizzo IP, esso identificherà comunque come proprio nome sulla LAN e quindi sarà in grado di accettare la connessione indipendentemente dal suo indirizzo IP. Dai semplicemente alle altre persone sulla tua LAN wireless il nome del tuo PC che ospita il server Apache e diciamo che il suo nome è DESKTOP-DOUGHFACTORYHUT digiteranno http: // DOUGHFACTORYHUT: 80 o qualunque numero di porta il tuo apache config sia impostato per ospitare come LOCALHOST: 80 che essenzialmente sono la stessa cosa collegati al tuo indirizzo IP dinamico locale assegnato da DHCP o IP STATICO che hai impostato sul server.


-2

Sono pienamente d'accordo con BugFinder.

In parole semplici, basta inserire l'indirizzo IP 192.168.1.56 nel browser in esecuzione 192.168.1.2 !

se non funziona, esistono le seguenti possibili ragioni:

  1. Problema di connettività di rete:

    • Prima di tutto controlla la tua connettività di rete usando il comando ping 192.168.1.56 nel prompt dei comandi / terminale sul computer 192.168.1.2.
  2. Problema del firewall: le impostazioni del firewall di Windows non dispongono della regola di autorizzazione per XAMPP (apache). (Problema più probabile)

    • (soluzione) vai alle impostazioni avanzate del firewall e aggiungi le regole in entrata e in uscita per il file eseguibile Apache.
  3. Problema di configurazione di Apache. : Apache è configurato per ascoltare solo le richieste locali.

    • (Soluzione) è possibile aprendo il file httpd.conf e sostituendo Ascolta 127.0.0.1:80 per Ascolta 80 o * Ascolta : 80
  4. Conflitto di porte con altri server (IIS ecc.)

    • (Soluzione) Disattiva il server apache e quindi apri l'host locale nel browser. se si ottiene una risposta, spegnere quel server quindi avviare Apache.

se tutto quanto sopra non funziona, probabilmente c'è qualche problema di configurazione su apache server.try per scoprirlo, altrimenti basta reinstallarlo e trasferire tutti i file php (htdocs) nella nuova installazione di XAMPP / WAMP.


1
Prima di tutto, questo post ha 5 anni, quindi questa risposta probabilmente non sarà utile all'OP. In secondo luogo, è possibile utilizzare Markdown per migliorare la formattazione della risposta per renderla più leggibile e più facile da seguire. Fidati di me, è una cosa carina da sapere. :-)
Isiah Meadows,

-3

Per eseguire il server Nodejs sulla rete

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

eseguire http: // yournetworkipaddress: 3000 per accedere all'applicazione tramite LAN (local area network)

I passaggi per trovare il tuo IP di rete.

Mac OS

  1. Vai a Preferenze di Sistema> Rete
  2. Controllare l'indirizzo IP della rete sotto la connessione.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.