¿Cómo puedo resolver el error httpd de apache2 "no se admite la combinación de puertos * y no * con una dirección NameVirtualHost"

24

Aquí está el error que obtengo al iniciar Apache2:

 * Starting web server apache2
 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
 [Wed Oct 21 16:37:26 2009] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
 [Wed Oct 21 16:37:26 2009] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
 [Wed Oct 21 16:37:26 2009] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
 [Wed Oct 21 16:37:26 2009] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
 [Wed Oct 21 16:37:26 2009] [warn] NameVirtualHost *:80 has no VirtualHosts

Primero seguí esta guía sobre la configuración de Apache para alojar múltiples sitios:

http://www.debian-administration.org/articles/412

Luego encontré una pregunta similar en ServerFault e intenté aplicar la solución, pero no ayudó.

Aquí hay un ejemplo de mi configuración final de VirtualHost:

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName  www.xxx.com
    ServerAlias xxx.com

    # Indexes + Directory Root.
    DirectoryIndex index.html
    DocumentRoot /var/www/www.xxx.com

    # Logfiles
    ErrorLog  /var/www/www.xxx.com/logs/error.log
    CustomLog /var/www/www.xxx.com/logs/access.log combined
</VirtualHost>

con el dominio X'd para proteger a los inocentes :-)

Además, tengo el archivo conf.d / virtual.conf mencionado en la guía que se ve así:

NameVirtualHost *

Lo extraño es que todo parece funcionar bien para dos de los tres sitios.

rcampbell
fuente
Publique su configuración completa (!) Apache httpd o al menos cada línea NameVirtualHost y <VirtualHost ...>.
joschi
No puede mezclar los dos tipos en la misma ip: puerto. Tuve una configuración en la que tenía dos ip, una tenía MassVhost colgando, la otra tenía todos los hosts normales basados ​​en nombres. Más importante aún, ¿cuál es el objetivo? ¿Qué estás intentando lograr? ¿Cuáles son tus limitaciones?
Marcin el

Respuestas:

29

Las direcciones IP nombradas con NameVirtualHosttienen que coincidir con la dirección IP en cada VirtualHostelemento.

Ejemplo:

NameVirtualHost *:80
NameVirtualHost *:81

<VirtualHost *:80>
# ...
</VirtualHost>

<VirtualHost *:81>
# ...
</VirtualHost>

# This will not work!
<VirtualHost *>
# ...
</VirtualHost>

Lea la documentación de Apache Virtual Host para más detalles.

joschi
fuente
Ojalá pudiera votar más de una vez. Realmente deberían llamar esto más claramente en la documentación.
Alex W
13

Reemplace esto:

NameVirtualHost *

Con este:

NameVirtualHost *:80
Eric Dennis
fuente
2
Agradezco la respuesta simple y desearía poder aceptar ambas
Rcampbell
5

Además de las respuestas, una cosa que noté es que no puede ejecutar SSL sin haber declarado explícitamente: 80 en cada directiva NameVirtualHost y VirtualHost, apache no admitirá tener:

NameVirtualHost *

y

NameVirtualHost *: 443

Mezclado en la misma configuración, obtendrá errores al escuchar apache en el puerto cero si lo hace.

Para mí, acabo de agregar: 80 a cada host para que SSL pueda funcionar correctamente.

Rodrigo
fuente
0

Ex:

<VirtualHost 85.25.97.252:80>
ServerName
domain.com ServerAlias ​​* .domain.com
ServerAdmin [email protected]
DocumentRoot "/var/www/domain.com/httpdocs/"
<Directorio "/var/www/domain.com/ httpdocs / ">
Opciones Índices FollowSymLinks
AllowOverride All
Order allow, denegar
Allow from all
</Directory>
</VirtualHost>

friv
fuente