La directiva de hosts virtuales Apache2 (XAMPP) no funciona (aparentemente)

La directiva de hosts virtuales Apache2 (XAMPP) no funciona (aparentemente)

Estoy teniendoalgunosProblemas al configurar hosts virtuales basados ​​en IP. En primer lugar, estoy usando el XAMPP actual de apachefriends (XAMPP 1.7.7 con Apache 2.2.21) en Windows 7.

La funcionalidad básica del servidor "principal" (de httpd.conf) funciona perfectamente. Pero ahora quiero configurar varios vhosts con diferentes direcciones IP, ya que configuré mi tarjeta de red para usar todas las direcciones IP de 192.168.2.95 a 192.168.2.105.

Esta es la entrada de hosts virtuales:

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

httpd -D DUMP_VHOSTSdice esto:

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

Pero no puedo acceder al vhost ni parece que Apache escuche en 192.168.2.96:80; no se muestra ninguna entrada para esta dirección con netstat -a -b.

Respuesta1

Encontré el problema: los vhosts basados ​​en IP simplemente no funcionan. Simplemente definir algunos nombres en el archivo de hosts (foo.localhost, bar.localhost, todos asignados a la misma dirección IP) y luego usar vhosts basados ​​en nombres funciona sin ningún problema. Por supuesto, esto no es tan portátil como las direcciones IP, ya que otras máquinas en la red naturalmente no conocen estos nombres... pero bueno, siempre y cuando de alguna manera funcione...

Respuesta2

Respuesta3

Aquí hay algunas cosas básicas que podría intentar agregar para asegurarse de obtener el puerto correcto.

# Ensure that Apache listens on port 80
Listen 80

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

Aquí hay un ejemplo de appache sobre cómo debería verse:

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

Estoy seguro de que has visto esto antes, pero a veces ayuda recordar las cosas simples.

Mi configuración funciona bien ejecutando 2 sitios web en 1 cuadro, usando ServerName www.example.com.

¡Espero que esto ayude!

Respuesta4

Asegúrese de que Apache sepa dónde está el archivo vhost.conf. En la parte inferior de httpd.conf, es posible que tengas que descomentar

Include conf/*.conf

información relacionada