it-swarm-es.com

Advertencia de inicio de Apache 2: NameVirtualHost *: 80 no tiene VirtualHosts

Cuando mi servidor Ubuntu Apache (Apache 2) se inicia, aparece un mensaje de advertencia que dice:

[warn] NameVirtualHost *:80 has no VirtualHosts

Sin embargo, el servidor web funciona bien. ¿Qué podría haber equivocado en la configuración de mi sitio para que me dé esta advertencia?

El archivo de configuración en cuestión (ubicado en /etc/Apache2/sites-available) se lee como (detalles eliminados por brevedad)

<VirtualHost *>
    <Location /mysite>
        # Configuration details here...
    </Location>

    # Use the following for authorization.
    <LocationMatch "/mysite/login">
        AuthType Basic
        AuthName "My Site"
        AuthUserFile /etc/sitepasswords/passwd
        Require valid-user
    </LocationMatch>
</VirtualHost>

¿Podría el hecho de que estoy usando <Location> ser parte del problema?

68
Kit Roed

Cambio

<VirtualHost *>

leer

<VirtualHost *:80>

O su (NameVirtualHost *: 80) agregado dos veces en su archivo Apache2 Confing. (Por defecto se agrega en el archivo ports.conf)

Esto debería borrar el error.

Aparte: no debes ignorar este error. La configuración de Apache, especialmente al bloquear hosts virtuales (por ejemplo, Incluir /etc/httpd/vhosts.d/*) no es estable. Eso significa que no controla el orden de carga de los hosts explícitamente, por lo que el vhost predeterminado para una IP se convierte en el que se carga primero, lo que puede tener consecuencias no deseadas.

Un ejemplo de esto es que el vhost predeterminado para una IP también estará disponible en esa IP, en lugar de su nombre. Esto puede hacer que la información se filtre en Google haciendo referencia a la IP de su sitio en lugar del nombre, lo que puede ser confuso para los clientes.

El error NameVirtualHost anterior puede ser una pista de que Apache ha cargado cosas de una manera no óptima, por lo que no debe ignorarlo.

53
Dave Cheney

Esto podría deberse a que tiene la directiva NameVirtualHost en más de un lugar.

No sé acerca de otras distribuciones, pero en Ubuntu/Debian, la configuración de Apache se divide en varios archivos, por lo que debería verificar dónde está la duplicación (httpd.conf, Apache2.conf, ports.conf, conf.d/*).

Ah, y acabo de encontrar este gran recurso con más información: Configuración incorrecta de Apache común .

51
Ivan

En un cuadro de Debian/Lenny: en /etc/Apache2/ports.conf hay una declaración NameVirtualHost adicional, que podría ser la causa de este problema (también hay la misma declaración en/etc/Apache2/sites-available/default) . Comenté esa declaración y el error desapareció.

9
Rune

Tiene un NameVirtualHost sin una entrada de VirtualHost coincidente.

Esto generalmente no es fatal, solo un error informativo.

3
Dominic Eidson

Es porque su línea NameVirtualHost tiene un número de puerto (:80), pero sus secciones de VirtualHost no.

3
derobert

Como menciona Rune, en los sistemas Debian NameVirtualHost aparece en muchos archivos: ports.conf, conf.d/virtual.conf y posiblemente sus propios archivos conf int sitios disponibles

Asegúrese de que exista en un lugar como NameVirtualHost *: 80 (el mío está en conf.d/virtual.conf) y las advertencias deberían desaparecer.

Como se mencionó, también debe hacer que la dirección de VirtualHost para cada sitio disponible tenga este formato <VirtualHost *:80>

2
Mo01

Tengo el mismo problema, pero desactivo el sitio predeterminado de Apache en algún momento. Escribo algo como

# a2dissite default

Después de intentar reiniciar Apache 2, recibo este mensaje:

"[warn] NameVirtualHost *: 80 no tiene VirtualHosts"

Luego habilito el sitio 'predeterminado' de Apache 2 nuevamente y todo funciona nuevamente, el comando utilizado es:

# a2ensite default

¡Eso es todo amigos!

2
Tiago