Atualmente, estou trabalhando em um projeto e gostaria de testá-lo em dois laptops em casa, onde um laptop se conecta ao host local do outro. Estou usando o XAMPP. Como eu faço isso?
Atualmente, estou trabalhando em um projeto e gostaria de testá-lo em dois laptops em casa, onde um laptop se conecta ao host local do outro. Estou usando o XAMPP. Como eu faço isso?
Respostas:
Isso é definitivamente possível. Vamos abordar um caso geral com o Apache aqui.
Digamos que você seja um grande fã do Symfony2 e gostaria de acessar seu site symfony em http://symfony.local/
4 computadores diferentes (o principal que hospeda seu site, além de um Mac, uma Windows e uma distribuição Linux conectada (sem fio ou não) a o computador principal.
1 Configure um host virtual :
Você primeiro precisa configurar um host virtual no seu httpd-vhosts.conf
arquivo apache . Em XAMP , você pode encontrar este arquivo aqui: C:\xampp\apache\conf\extra\httpd-vhosts.conf
. Em MAMP , você pode encontrar este arquivo aqui: Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
. Esta etapa prepara o servidor da Web no seu computador para lidar com symfony.local
solicitações. Você precisa fornecer o nome do host virtual e a pasta principal / raiz do seu site. Para fazer isso, adicione a seguinte linha no final desse arquivo. Você precisa alterar DocumentRoot
para onde estiver a pasta principal. Aqui eu tomei /Applications/MAMP/htdocs/Symfony/
como a raiz do meu site.
<VirtualHost *:80>
DocumentRoot "/Applications/MAMP/htdocs/Symfony/"
ServerName symfony.local
</VirtualHost>
2 Configure o seu arquivo hosts :
Para o cliente (seu navegador nesse caso) entender o que symfony.local
realmente significa, você precisa editar o arquivo de hosts no seu computador. Sempre que você digita um URL no seu navegador, seu computador tenta entender o que isso significa! symfony.local
não significa nada para um computador. Portanto, ele tentará resolver o nome symfony.local
para um endereço IP. Isso será feito primeiro olhando para o arquivo de hosts no seu computador, para ver se ele pode corresponder um endereço IP ao que você digitou na barra de endereços. Se não puder, ele perguntará aos servidores DNS . O truque aqui é anexar o seguinte ao seu arquivo 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
A partir de agora, toda vez que você digitar symfony.local neste computador, seu computador usará a interface de loopback para conectar-se ao symfony.local. Ele entenderá que você deseja trabalhar no host local (127.0.0.1).
3 Acesso symfony.local
partir de outro computador :
Finalmente chegamos à sua pergunta principal, que é:
Como posso acessar meu site agora através de outro computador?
Bem, isso agora é fácil! Só precisamos dizer aos outros computadores como eles podem encontrarsymfony.local
! Como vamos fazer isso?
3a Obter o endereço IP do computador que hospeda o site :
Primeiro precisamos saber o endereço IP no computador que hospeda o site (aquele em que trabalhamos desde o início). No terminal, na MAC e LINUX tipo ifconfig |grep inet
, em WINDOWS
tipo ipconfig
. Vamos supor que o endereço IP deste computador seja 192.168.1.5 .
3b Edite o arquivo hosts no computador em que você está tentando acessar o site.:
Novamente, no MAC , esse arquivo está dentro /private/etc/hosts
; no LINUX , em /etc/hosts
; e no WINDOWS , em \Windows\system32\private\etc\hosts
(se você estiver usando o WINDOWS 7 , esse arquivo está em \Windows\system32\drivers\etc\hosts
) .. O truque agora é usar o endereço IP do computador que estamos tentando acessar / conversar:
##
# Host Database
# localhost is used to configure the loopback interface
##
#...
192.168.1.5 symfony.local
4 Por fim, aproveite os resultados no seu navegador
Agora você pode acessar o seu navegador e digitar http://symfony.local
para ver o seu site de maneira bonita em computadores diferentes! Observe que você pode aplicar a mesma estratégia se for um usuário do OSX para testar seu site no Internet Explorer via Virtual Box (se não quiser usar um computador com Windows). Isso é bem explicado em Criando seu ambiente de teste do Windows / IE no OSX .
Você pode se perguntar como acessar o site do host local a partir de um dispositivo móvel. Em alguns casos, você não poderá modificar o arquivo hosts (iPhone, iPad ...) no seu dispositivo (excluindo o jailbreak).
Bem, a solução é instalar um servidor proxy na máquina que hospeda o site e conectar-se a esse proxy a partir do seu iphone. Na verdade, é muito bem explicado nas postagens a seguir e não demora muito para configurar:
Em um Mac, eu recomendaria: Testar um site do Mac OS X usando um nome de host local em um dispositivo móvel : Usando o SquidMan como proxy. É uma solução 100% gratuita. Algumas pessoas também podem usar Charles como um servidor proxy, mas são 50 $.
No Linux, você pode adaptar o Mac OS acima, usando o Squid como um servidor proxy.
No Windows, você pode fazer isso usando o Fiddler . A solução é descrita na seguinte postagem: Monitorando o tráfego do iPhone com o Fiddler
@Dre. Existe alguma maneira possível de acessar o site de outro computador, não editando o arquivo host manualmente? digamos que eu tenho 100 computadores que queria acessar o site
Essa é uma pergunta interessante e, como está relacionada à questão do OP, deixe-me ajudar.
Você precisaria fazer uma alteração na sua rede para que cada máquina saiba onde seu site está hospedado. A maioria dos roteadores todos os dias não faz isso, então você teria que executar seu próprio servidor DNS na sua rede.
Vamos fingir que você tem um roteador (192.168.1.1). Este roteador possui um servidor DHCP e aloca endereços IP para 100 máquinas na rede.
Agora, digamos que você tenha, da mesma forma que acima, na mesma rede, uma máquina na 192.168.1.5
qual o seu site está. Vamos ligar para essa máquina pompei.
$ echo $HOSTNAME
pompei
Mesmo que antes, essa máquina pompeiem 192.168.1.5
pistas de um servidor HTTP que serve o seu site symfony.local
.
Para que todas as máquinas saibam que symfony.local
está hospedado pompei, agora precisamos de um servidor DNS personalizado na rede que saiba onde symfony.local
está hospedado. Os dispositivos na rede poderão resolver nomes de domínio servidos porpompei internamente.
Step 1: DNS Server
Configure um servidor DNS na sua rede. Vamos pompeiusá- lo por conveniência e usar algo como dnsmasq .
Dnsmasq fornece Domain Name System (DNS) transitário , ... .
Queremos pompeiexecutar o DNSmasq para lidar com solicitações de DNS Hey, pompei, where is symfony.local
e responderHey, sure think, it is on 192.168.1.5 but don't take my word for it
.
Vá em frente, instale o dnsmasq, normalmente o arquivo de configuração do dnsmasq /etc/dnsmasq.conf
depende do seu ambiente.
Eu pessoalmente uso no-resolv
e servidores do Google server=8.8.8.8 server=8.8.8.4
.
* Nota: * SEMPRE reinicie o DNSmasq se modificar o arquivo / etc / hosts, pois nenhuma alteração terá efeito caso contrário.
Step 2: Firewall
Para funcionar, é pompeinecessário permitir pacotes de 'domínio' de entrada e saída, que vão da e para a porta 53. Claro! Estes são pacotes DNS e, se pompeinão os permitir, não há como o servidor DNS ser acessado. Vá em frente e abra a porta 53. No linux, você usaria classicamente iptables
para isso.
Compartilhar o que eu criei, mas você provavelmente terá que mergulhar no seu firewall e entender tudo bem.
#
# 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
Informe ao seu roteador que seu servidor DNS está ativado 192.168.1.5
agora. Na maioria das vezes, você pode simplesmente fazer login no seu roteador e alterá-lo manualmente com muita facilidade.
É isso: quando você estiver em uma máquina e solicitando symfony.local
, ele perguntará ao servidor DNS onde symfony.local
está hospedado e, assim que receber a resposta do servidor DNS, enviará a solicitação HTTP adequada para pompeion 192.168.1.5
.
Eu deixo você brincar com isso e aproveitar o passeio. Essas duas etapas são as principais diretrizes, portanto, você terá que depurar e passar algumas horas, se for a primeira vez que faz isso. Vamos dizer que isso é um pouco de rede mais avançada, há servidor DNS primário, servidores DNS secundários, etc . Boa sorte!
host
arquivo manualmente? digamos que eu tenho 100 computadores desejados para acessar o site
Para testar nos dois laptops na mesma conexão sem fio e na Internet, você pode usar um serviço como http://localhost.run/ ou https://ngrok.com/
Desde que as duas máquinas estejam no mesmo grupo de trabalho, abra cmd.exe
na máquina à qual você deseja se conectar, digite ipconfig
e anote o IP na IPv4 Address
linha.
Em seguida, na máquina com a qual você deseja se conectar, use http:// + the IP of the target machine
.
Isso deve resolver.
No Mac OS X:
No terminal, execute ifconfig | grep 192.
para obter o IP interno da sua máquina na rede atual. Pode ser algo como192.168.1.140
Inicie um servidor. Por exemplo, node server.js
pode iniciar um servidor em alguma porta.
No telefone, visite 192.168.1.140:3000
ou qualquer porta em que o servidor esteja sendo executado.
Essa ferramenta me salvou muito, pois não tenho permissão de administrador na minha máquina e já tinha o nodejs instalado. Por algum motivo, a configuração na minha rede não me dá acesso a outras máquinas apenas apontando o IP no 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
em uma concha separada. Em outro dispositivo conectado à rede, digito: ${computerIP}:3000
mas não vejo nada. Eu acho que há algo mais que eu deveria fornecer.
pode ser que seus firewalls estejam impedindo que você acesse o servidor da web do host local.
Coloque os endereços IP da segurança de rede antivírus de segurança na Internet de ambos os computadores como endereços IP seguros, se necessário.
Como encontrar o endereço IP do seu PC com Windows: Iniciar> (Executar) digite: cmd (Enter)
(Isso abre o prompt de comando da caixa preta)
digite ipconfig (Enter)
Digamos que seu servidor Apache ou IIS esteja instalado no seu PC : 192.168.0.3
e você deseja acessar seu servidor da web com seu laptop. (o IP do laptop é 192.168.0.5)
No seu laptop, você digita http://192.168.0.3/ para acessar seu servidor da web no seu PC.
Para que tudo isso funcione, você precisa ter instalado um servidor da Web corretamente (por exemplo, IIS, Apache, XAMP, WAMP, etc.).
No seu PC, você digita: http: // localhost / dentro do navegador Firefox ou Internet Eplorer para acessar seus dados no servidor da web.
Se não funcionar, tente
executar o ping no seu PC a partir do seu laptop: Abra o comando propmt no seu laptop: Iniciar> cmd (Enter)
ping 192.168.1.3 (Enter)
Se o ping falhar, os firewalls estão bloqueando sua conexão ou sua rede. o cabeamento está com defeito. Reinicie seu modem ou comutador de rede e suas máquinas.
Feche programas como programas de bate-papo que estão usando suas portas.
Você também pode tentar um número de porta diferente: http: 192.168.0.3: 80 ou http: 192.168.0.3: 81 ou qualquer número aleatório no final
Esta é uma observação se ainda não for possível acessar o host local de outros dispositivos após seguir a etapa acima. Isso pode dever-se ao fato de o apache ports.conf ter sido configurado para servir localmente (127.0.0.1) e não para o exterior.
verifique o seguinte (para o ubuntu apache2)
$ cat /etc/apache2/ports.conf
se o seguinte estiver definido,
NameVirtualHost *:80
Listen 127.0.0.1:80
altere-o novamente para o valor padrão
NameVirtualHost *:80
Listen 80
Se você estiver no Windows, use ipconfig para obter o endereço IPv4 local e especifique-o no arquivo de configuração do Apache: httpd.conf , como:
Listen: 10.20.30.40:80
Reinicie o servidor Apache e teste-o em outro computador na rede.