Actualmente estoy trabajando en un proyecto y me gustaría probarlo en dos computadoras portátiles en casa, donde una computadora portátil se conecta al host local en la otra. Estoy usando XAMPP. ¿Cómo hago esto?
Actualmente estoy trabajando en un proyecto y me gustaría probarlo en dos computadoras portátiles en casa, donde una computadora portátil se conecta al host local en la otra. Estoy usando XAMPP. ¿Cómo hago esto?
Respuestas:
Eso es definitivamente posible. Tomaremos un caso general con Apache aquí.
Digamos que eres un gran fanático de Symfony2 y te gustaría acceder a tu sitio web de Symfony http://symfony.local/
desde 4 computadoras diferentes (la principal que aloja tu sitio web, así como una distribución Mac, Windows y Linux conectada (inalámbrica o no) a La computadora principal.
1 Configure un host virtual :
Primero debe configurar un host virtual en su httpd-vhosts.conf
archivo apache . En XAMP , se puede encontrar este archivo aquí: C:\xampp\apache\conf\extra\httpd-vhosts.conf
. En MAMP , se puede encontrar este archivo aquí: Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
. Este paso prepara el servidor web en su computadora para manejar las symfony.local
solicitudes. Debe proporcionar el nombre del host virtual, así como la carpeta raíz / principal de su sitio web. Para hacer esto, agregue la siguiente línea al final de ese archivo. Necesita cambiar el DocumentRoot
a donde sea que esté su carpeta principal. Aquí lo he tomado /Applications/MAMP/htdocs/Symfony/
como la raíz de mi sitio web.
<VirtualHost *:80>
DocumentRoot "/Applications/MAMP/htdocs/Symfony/"
ServerName symfony.local
</VirtualHost>
2 Configure su archivo de hosts :
Para que el cliente (su navegador en ese caso) entienda lo que symfony.local
realmente significa, debe editar el archivo hosts en su computadora. ¡Cada vez que escribe una URL en su navegador, su computadora trata de entender lo que significa! symfony.local
no significa nada para una computadora. Por lo tanto, intentará resolver el nombre symfony.local
a una dirección IP. Para ello, primero busque en el archivo de hosts en su computadora para ver si puede hacer coincidir una dirección IP con lo que escribió en la barra de direcciones. Si no puede, le preguntará a los servidores DNS . El truco aquí es agregar lo siguiente a su archivo de hosts.
/private/etc/hosts
;/etc/hosts
;\Windows\system32\private\etc\hosts
;\Windows\system32\drivers\etc\hosts
;\Windows\system32\drivers\etc\hosts
;Hosts file
##
# Host Database
# localhost is used to configure the loopback interface
##
#...
127.0.0.1 symfony.local
De ahora en adelante, cada vez que escriba symfony.local en esta computadora, su computadora usará la interfaz de bucle invertido para conectarse a symfony.local. Comprenderá que desea trabajar en localhost (127.0.0.1).
3 Acceso symfony.local
desde otra computadora :
Finalmente llegamos a su pregunta principal que es:
¿Cómo puedo acceder ahora a mi sitio web a través de otra computadora?
Bueno, esto ahora es fácil! ¡Solo tenemos que decirles a las otras computadoras cómo pueden encontrar symfony.local
! Cómo hacemos esto?
3a Obtenga la dirección IP de la computadora que aloja el sitio web :
Primero necesitamos saber la dirección IP en la computadora que aloja el sitio web (en la que hemos estado trabajando desde el principio). En el terminal, en MAC y tipo LINUXifconfig |grep inet
, en WINDOWS
tipo ipconfig
. Supongamos que la dirección IP de esta computadora es 192.168.1.5 .
3b Edite el archivo de hosts en la computadora desde la que está intentando acceder al sitio web. :
De nuevo, en MAC , este archivo está en /private/etc/hosts
; en LINUX , en /etc/hosts
; y en WINDOWS , en \Windows\system32\private\etc\hosts
(si está usando WINDOWS 7 , este archivo está en \Windows\system32\drivers\etc\hosts
). El truco ahora es usar la dirección IP de la computadora a la que estamos intentando acceder / hablar:
##
# Host Database
# localhost is used to configure the loopback interface
##
#...
192.168.1.5 symfony.local
4 Finalmente disfruta de los resultados en tu navegador
¡Ahora puede ingresar a su navegador y escribir http://symfony.local
para ver bellamente su sitio web en diferentes computadoras! Tenga en cuenta que puede aplicar la misma estrategia si es un usuario de OSX para probar su sitio web en Internet Explorer a través de Virtual Box (si no desea usar una computadora con Windows). Esto se explica maravillosamente en Creación del entorno de prueba de Windows / IE en OSX .
Quizás se pregunte cómo acceder a su sitio web localhost desde un dispositivo móvil. En algunos casos, no podrá modificar el archivo de hosts (iPhone, iPad ...) en su dispositivo (excluido el jailbreak).
Bueno, la solución es instalar un servidor proxy en la máquina que aloja el sitio web y conectarse a ese proxy desde su iPhone. En realidad, está muy bien explicado en las siguientes publicaciones y no es tan largo de configurar:
En una Mac, recomendaría: Probar un sitio web de Mac OS X usando un nombre de host local en un dispositivo móvil : Usar SquidMan como proxy. Es una solución 100% gratuita. Algunas personas también pueden usar Charles como servidor proxy, pero cuesta 50 $.
En Linux, puede adaptar el sistema operativo Mac OS arriba usando Squid como servidor proxy.
En Windows, puede hacerlo usando Fiddler . La solución se describe en la siguiente publicación: Supervisión del tráfico de iPhone con Fiddler
@Dre. ¿Hay alguna forma posible de acceder al sitio web desde otra computadora al no editar el archivo host manualmente? digamos que tengo 100 computadoras que quieren acceder al sitio web
Esta es una pregunta interesante, y como está relacionada con la pregunta OP, déjame ayudarte.
Tendría que hacer un cambio en su red para que cada máquina sepa dónde está alojado su sitio web. La mayoría de los enrutadores cotidianos no hacen eso, por lo que tendría que ejecutar su propio servidor DNS en su red.
Supongamos que tiene un enrutador (192.168.1.1). Este enrutador tiene un servidor DHCP y asigna direcciones IP a 100 máquinas en la red.
Ahora, supongamos que tiene, igual que el anterior, en la misma red, una máquina en la 192.168.1.5
que tiene su sitio web. Llamaremos a esa máquina pompei.
$ echo $HOSTNAME
pompei
Igual que antes, esa máquina pompeien 192.168.1.5
carreras de un servidor HTTP que sirve su sitio web symfony.local
.
Para que cada máquina sepa que symfony.local
está alojada pompei, ahora necesitaremos un servidor DNS personalizado en la red que sepa dónde symfony.local
está alojado. Los dispositivos en la red podrán resolver nombres de dominio servidos pompeiinternamente.
Step 1: DNS Server
Configure un servidor DNS en su red. Hablemos pompeipor conveniencia y usemos algo como dnsmasq .
Dnsmasq ofrece sistema de nombres de dominio (DNS) transitario , ... .
Queremos pompeiejecutar DNSmasq para manejar solicitudes DNS Hey, pompei, where is symfony.local
y responder Hey, sure think, it is on 192.168.1.5 but don't take my word for it
.
Continúe instalando dnsmasq, el archivo de configuración de dnsmasq generalmente /etc/dnsmasq.conf
depende de su entorno.
Yo personalmente uso no-resolv
y servidores de google server=8.8.8.8 server=8.8.8.4
.
* Nota: * SIEMPRE reinicie DNSmasq si modifica el archivo / etc / hosts ya que de lo contrario no habrá cambios.
Step 2: Firewall
Para funcionar, pompeidebe permitir los paquetes de 'dominio' entrantes y salientes, que van desde y hacia el puerto 53. ¡Por supuesto! Estos son paquetes DNS y, si pompeino los permite, no hay forma de que se llegue a su servidor DNS. Continúe y abra ese puerto 53. En Linux, lo usaría clásicamente iptables
para esto.
Compartí lo que se me ocurrió, pero es muy probable que tengas que sumergirte en tu firewall y entender todo bien.
#
# Allow outbound DNS port 53
#
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --sport 53 -j ACCEPT
iptables -A INPUT -p tcp --sport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 53 -j ACCEPT
iptables -A OUTPUT -p udp --sport 53 -j ACCEPT
Step 3: Router
Dígale a su enrutador que su servidor DNS está encendido 192.168.1.5
ahora. La mayoría de las veces, solo puede iniciar sesión en su enrutador y cambiar esto manualmente muy fácilmente.
Eso es todo, cuando estás en una máquina y pide symfony.local
, se le pedirá a su servidor DNS donde symfony.local
se aloja, y tan pronto como se haya recibido la respuesta del servidor DNS y, a continuación enviará el correcto petición HTTP para pompeiel 192.168.1.5
.
Te dejo jugar con esto y disfrutar del paseo. Estos 2 pasos son las pautas principales, por lo que tendrá que depurar y pasar algunas horas si es la primera vez que lo hace. Digamos que este es un poco más avanzada de redes, hay servidor DNS primario, los servidores DNS secundario, etc . ¡Buena suerte!
host
archivo manualmente? digamos que tengo 100 computadoras que desean acceder al sitio web
Para realizar pruebas en ambas computadoras portátiles en la misma red inalámbrica y en Internet, puede utilizar un servicio como http://localhost.run/ o https://ngrok.com/
Siempre que ambas máquinas estén en el mismo grupo de trabajo, abra cmd.exe
la máquina a la que desea conectarse, escriba ipconfig
y anote la IP en la IPv4 Address
línea.
Luego, en la máquina con la que desea conectarse, use http:// + the IP of the target machine
.
Deberias hacer eso.
En Mac OS X:
En la terminal, ejecute ifconfig | grep 192.
para obtener la IP interna de su máquina en su red actual. Puede ser algo como192.168.1.140
Inicia un servidor. Por ejemplo, node server.js
puede iniciar un servidor en algún puerto.
En su teléfono, visite 192.168.1.140:3000
o en cualquier puerto en el que se esté ejecutando su servidor.
Esta herramienta me ahorró mucho, ya que no tengo permiso de administrador en mi máquina y ya tenía nodejs instalados. Por alguna razón, la configuración en mi red no me da acceso a otras máquinas simplemente apuntando la IP en el navegador.
# 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
browser-sync start --proxy localhost:3000
en una cáscara separada. En otro dispositivo que está conectado a la red escribo: ${computerIP}:3000
pero no veo nada. Supongo que hay algo más que debería proporcionar.
Puede ser que sus firewalls le impidan acceder al servidor web del localhost.
Ponga las direcciones IP de las dos redes de seguridad antivirus de sus computadoras como direcciones IP seguras si es necesario.
Cómo encontrar la dirección IP de su PC con Windows: Inicio> (Ejecutar) escriba: cmd (Enter)
(Esto abre el símbolo del sistema del cuadro negro)
escriba ipconfig (Enter)
Digamos que su servidor web Apache o IIS está instalado en su PC : 192.168.0.3
y desea acceder a su servidor web con su computadora portátil. (La IP del portátil es 192.168.0.5)
En su PC, escriba: http: // localhost / dentro de su navegador Firefox o Internet Eplorer para acceder a sus datos en su servidor web.
En su computadora portátil, escriba http://192.168.0.3/ para acceder a su servidor web en su PC.
Para que todas estas cosas funcionen, debe haber instalado un servidor web correctamente (por ejemplo, IIS, Apache, XAMP, WAMP, etc.).
Si no funciona, intente hacer ping a su PC desde su computadora portátil:
abra el comando de comando en su computadora portátil: Inicio> cmd (Enter)
ping 192.168.1.3 (Enter)
Si el ping falla, los firewalls están bloqueando su conexión o su red El cableado es defectuoso. Reinicie su módem o conmutador de red y sus máquinas.
Cierre los programas como los programas de chat que utilizan sus puertos.
También puede probar un número de puerto diferente: http: 192.168.0.3: 80 o http: 192.168.0.3: 81 o cualquier número aleatorio al final
Esta es una nota al margen si aún no se puede acceder a localhost desde otros dispositivos después de seguir el paso anterior. Esto podría deberse a que apache ports.conf ha sido configurado para servir localmente (127.0.0.1) y no al exterior.
verifique lo siguiente, (para ubuntu apache2)
$ cat /etc/apache2/ports.conf
si se establece lo siguiente,
NameVirtualHost *:80
Listen 127.0.0.1:80
luego vuelva a cambiarlo al valor predeterminado
NameVirtualHost *:80
Listen 80
Si está en Windows, use ipconfig para obtener la dirección IPv4 local y luego especifique eso en su archivo de configuración de Apache: httpd.conf , como:
Listen: 10.20.30.40:80
Reinicie su servidor Apache y pruébelo desde otra computadora en la red.