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

68

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?

Kit Roed
fuente

Respuestas:

53

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 de NameVirtualHost anterior puede ser una pista de que apache ha cargado cosas de una manera no óptima, por lo que no debe ignorarlo.

Dave Cheney
fuente
55
Puede configurar el vhost predeterminado de esta manera:<VirtualHost _default_ thehostname.com>
Amy B
51

Eso 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 tendría que 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: configuraciones incorrectas comunes de Apache .

Ivan
fuente
3
El enlace que proporcionó parece un gran recurso para tratar de comprender los matices de los archivos de configuración de Apache. ¡Gracias!
Kit Roed el
44
¡Gracias! Este era mi problema: había creado un virtual.conf para NameVirtualHost, sin saber que ya estaba en ports.conf
rcampbell
Gracias: el mismo problema aquí en una configuración predeterminada del servidor ubuntu: ports.conf contiene NameVirtualHost : 80 y no debe repetirse en los archivos de configuración / habilitados para sitios .
DrSAR
1
En mi caso, este problema se debió a que ubuntu tenía NameVirtualHost *:80tanto adentro ports.confcomo adentro conf.d/virtualhosts, lo que parece ser un error de Ubuntu.
esponjoso
9

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


fuente
3

Tiene un NameVirtualHost sin una entrada de VirtualHost coincidente.

Esto generalmente no es fatal, solo un error informativo.

Dominic Eidson
fuente
3

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

derobert
fuente
2

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>

Mo01
fuente
2

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!

Peter Mortensen
fuente
Este ha sido el mejor consejo.
jini
Un consejo increíble, estoy ejecutando zpanelCP y nada funcionó excepto esto. Gracias ! :)
Eliran Efron