A diretiva de hosts virtuais Apache2 (XAMPP) não funciona (aparentemente)

A diretiva de hosts virtuais Apache2 (XAMPP) não funciona (aparentemente)

Estou tendoum poucoproblemas ao configurar hosts virtuais baseados em IP. Primeiro de tudo, estou usando o XAMPP atual do Apachefriends (XAMPP 1.7.7 com Apache 2.2.21) no Windows 7.

A funcionalidade básica do servidor "principal" (de httpd.conf) funciona perfeitamente. Mas agora quero configurar vários vhosts com endereços IP diferentes, pois configurei minha placa de rede para usar todos os endereços IP de 192.168.2.95 a 192.168.2.105 .

Esta é a entrada de hosts virtuais:

<VirtualHost 192.168.2.96:80>
    DocumentRoot "/xampp/hegedocs/www"
    ServerName 192.168.2.96:80
</VirtualHost>

httpd -D DUMP_VHOSTSdiz isto:

PS G:\xampp\apache\bin> ./httpd -D DUMP_VHOSTS
VirtualHost configuration:
192.168.2.96:80        192.168.2.96 (G:/xampp/apache/conf/extra/httpd-vhosts.conf:45)
Syntax OK

Mas não consigo acessar o vhost nem parece que o apache escuta em 192.168.2.96:80 - não há nenhuma entrada mostrada para este endereço com netstat -a -b.

Responder1

Encontrei o problema: vhosts baseados em IP simplesmente não funcionam. Apenas definir alguns nomes no arquivo hosts (foo.localhost, bar.localhost todos mapeados para o mesmo endereço IP) e então usar vhosts baseados em nomes funciona sem nenhum problema. É claro que isso não é tão portátil quanto os endereços IP, já que outras máquinas na rede naturalmente não conhecem esses nomes... mas bem, contanto que de alguma forma funcione...

Responder2

Basta verificar este guia

http://i.justrealized.com/2008/how-to-set-up-virtualhost-in-xampp-for-windows/

Está funcionando para mim

Responder3

Aqui estão algumas coisas básicas que você pode tentar adicionar para ter certeza de que está obtendo a porta correta.

# Ensure that Apache listens on port 80
Listen 80

# Listen for virtual host requests on all IP addresses
NameVirtualHost *:80

Aqui está um exemplo do appache sobre como deveria ser:

<VirtualHost *:80>
DocumentRoot /www/example1
ServerName www.example1.com

# Other directives here

</VirtualHost>

<VirtualHost *:80>
DocumentRoot /www/example2
ServerName www.example2.org

# Other directives here

</VirtualHost>

Tenho certeza de que você já viu isso antes, mas às vezes ajuda olhar para as coisas simples.

Minha configuração funciona bem executando 2 sites em 1 caixa, usando ServerName www.example.com.

Espero que isto ajude!

Responder4

Certifique-se de que o Apache saiba onde está o arquivo vhost.conf. Na parte inferior do httpd.conf, talvez seja necessário descomentar

Include conf/*.conf

informação relacionada