Eu instalei o servidor Apache no meu computador Windows 7. Consegui exibir o index.php padrão digitando http://localhost/ na linha de endereço do meu navegador.
No entanto, ainda não consigo ver esta página digitando o endereço IP do meu computador (nem localmente (do mesmo computador) nem globalmente (de outro computador conectado à Internet)).
Me falaram que eu preciso abrir a porta 80. Eu fiz isso (da forma descrita aqui ) mas não resolveu o problema.
Antes de tudo, gostaria de verificar quais portas estão abertas e quais não estão. Por exemplo, não tenho certeza de que minha porta 80 foi fechada antes de tentar abrir. Também não tenho certeza de que ele foi aberto depois que tentei abri-lo.
Eu tentei rodar um servidor web muito simples escrito em Python. Para isso usei a porta 81 e funcionou! E eu não tentei abrir a porta 81. Então, ela foi aberta por padrão. Então, se 81 é aberto por padrão, por que 80 não é? Ou é?
INFORMAÇÕES ADICIONAIS:
1. No meu arquivo httpd.conf tenho "Listen 80".
2. Este site informa que a porta 80 do meu computador está aberta.
3. Recebo respostas diferentes se tento http://myip:80 e http://myip:81 . No último caso o navegador (Chrome) me escreve que o link está quebrado. No primeiro caso recebo: Forbidden Você não tem permissão para acessar / neste servidor.
4. IE escreve que "O site se recusou a mostrar esta página".
Se você está apenas verificando suas portas do lado de fora. Use esta ferramenta:
http://www.yougetsignal.com/tools/open-ports/
Ele tentará se conectar ao seu endereço IP, na porta específica, e informará se está aberto ou fechado para o mundo exterior.
Problemas locais também? Parece que o firewall do Windows 7 está cortando você. Adicione uma exceção com este tutorial...
http://www.sevenforums.com/tutorials/542-windows-firewall-add-remove-exception.html
Executar
netstat -a -n
ouss -a -n
a partir de um prompt de comando mostrará todas as conexões de rede abertas e as portas de escuta em sua máquina.0.0.0.0:80
significaria que ele está ouvindo na porta80
de todos os endereços IP (localhost e seus endereços IP públicos/privados), onde127.0.0.1:80
significa que está ouvindo apenas no localhost. Você pode adicionar-b
ao comando e ele mostrará qual executável está usando essa porta. Você pode obter as mesmas informações usando o Monitor de recursos no Windows 7 na seção Portas de escuta da guia Rede.Se você quiser ver se ele está aberto de outro servidor, você pode simplesmente
telnet serverName 80
ver se a sessão abre. Caso contrário, o servidor não está escutando ou a porta está bloqueada por um firewall.Se ele abrir e fechar imediatamente, pelo menos no Windows 2003, o software (como o Exchange) pode não estar configurado para escutar nessa interface ou IP específico, mas está escutando em outras portas. Eu vi o IIS se comportar dessa maneira porque é estúpido, o Apache pode não.
Você escreveu:
Embora isso possa parecer estranho, você realmente não tem problemas com portas abertas (mas com a configuração do Apache).
Essa mensagem "Proibido" vem do seu servidor Apache; significa que o seu servidor web está acessível a partir da Internet.
Você precisa configurar o Apache para permitir servir a todos os hosts - caso contrário, eles receberão a página "Proibido". IIRC, o Apache é inicialmente configurado para permitir apenas solicitações do computador local.
Em algum lugar na sua configuração do Apache, provavelmente há uma seção como esta (o diretório real pode ser diferente):
Se você deseja permitir que qualquer computador veja suas páginas, você precisa alterar
Deny from all
paraAllow from all
. Consulte a documentação do módulo de acesso para obter mais informações .Para ver portas abertas, você provavelmente deve usar nmap Eles têm uma versão do Windows: http://nmap.org/dist/nmap-5.21-setup.exe
Não é suficiente se você ver sua porta 80 aberta no host local - talvez algo esteja no caminho se você tentar de outro lugar, é por isso que eu recomendo o nmap
No cliente, você digita: nmap ip-of-your-server
Se você quiser testar isso em sua rede local, faça o download do nmap Se você quiser ver se a porta está acessível ao mundo exterior, faça uma varredura em https://www.grc.com/x/ne.dll?bh0bkyd2
Se você estiver no Windows, use SysInternals TCPView . Ele pode dizer qual programa está usando qual porta.
As portas do servidor podem ser vinculadas a um único endereço IP ou a todos os endereços IP disponíveis. Parece que sua instalação do Apache está configurada para vincular apenas a 127.0.0.1, e você precisa configurá-la para vincular a *. No seu httpd.conf (no diretório conf do Apache), procure por uma linha como
Listen localhost:80
e mude paraListen 80
.telnet <host> <port>
é seu amigo. Tem a virtude de ser instalado em praticamente todos os computadores do mundo.Edições depois de reler a pergunta:
Aqui estão algumas dicas úteis de diagnóstico
se você pode acessar o site via localhost, mas não através do seu IP local do site (192.168.*) de outros hosts em sua rede, provavelmente é um problema de firewall do Windows.
se você puder acessar o site de outras máquinas locais do site, mas não da Internet para o seu IP público, é um problema de configuração de roteador/encaminhamento de porta.
Em um prompt de comando, digite:
... ou seu IP:80. Isso informará se a porta 80 está aberta em sua máquina. Agora, se você quiser verificar e ver se pode acessá-lo de fora da sua rede, determinará se você possui algum tipo de firewall. Se você fizer isso, você precisará encaminhar a porta 80 para o seu servidor web.