Pregunta 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 está funcionando bien. ¿Qué podría haber cometido un error en la configuración de mi sitio para que me diera esta advertencia?

El archivo de configuración en cuestión (ubicado en /etc/apache2/sites-available) 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?


66
2018-04-30 18:16


origen




Respuestas:


Cambio

<VirtualHost *>

leer

<VirtualHost *:80>

O se agrega (NameVirtualHost *: 80) dos veces en su archivo de 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 cuando se agrupan hosts virtuales (p. Ej., Include /etc/httpd/vhosts.d/*) no es estable. Eso significa que no controla el orden de carga de los hosts de forma explícita, por lo que el vhost predeterminado para una IP se convierte en el que se carga primero, lo que puede llevar a consecuencias no deseadas.

Un ejemplo de esto es que vhost predeterminado para una IP también estará disponible en esa IP, en lugar de su nombre. Esto puede provocar que la información se filtre en Google, lo que hace referencia a la IP de sus sitios en lugar del nombre, lo que puede resultar confuso para los clientes.

El error NameVirtualHost anterior puede ser un indicio de que apache ha cargado las cosas de una manera no óptima, por lo que no debe ignorarlo.


53
2018-05-10 03:30



¡Dado en el clavo! Gracias por aclarar eso! - Kit Roed
Puede configurar el vhost predeterminado de esta manera: <VirtualHost _default_ thehostname.com> - Amy B


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

No sé sobre otras distribuciones, pero en Ubuntu / Debian, la configuración de Apache está dividida 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 erróneas de Apache comunes.


51
2018-04-30 18:21



El enlace que dio parece un gran recurso para tratar de comprender los matices de los archivos de configuración de Apache. ¡Gracias! - Kit Roed
¡Gracias! Este fue 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 sitios habilitados / archivos de configuración! - DrSAR
En mi caso, este problema era porque Ubuntu tenía NameVirtualHost *:80 ambos en ports.conf y en conf.d/virtualhosts, que parece ser un error de Ubuntu. - fluffy


En una caja 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 afirmación y el error desapareció.


9
2017-07-19 08:12





Tienes un NameVirtualHost sin una entrada de VirtualHost coincidente.

Esto normalmente no es fatal, solo es un error informativo.


3
2018-04-30 18:22





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


3
2018-04-30 18:42





AS Rune menciona, en los sistemas Debian, NameVirtualHost aparece en muchos archivos: ports.conf, conf.d / virtual.conf y posiblemente sus propios archivos conf en los 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 deben ir.

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


2
2017-11-15 14:19





Tengo el mismo problema, pero deshabilito 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 de nuevo el sitio 'predeterminado' de Apache 2 y todo funciona de nuevo, el comando utilizado es:

# a2ensite default

¡Eso es todo amigos!


2
2018-03-31 19:53



Este ha sido el mejor consejo. - jini
Fantástico consejo, estoy ejecutando zpanelCP y nada funcionó excepto esto. Gracias ! :) - Eliran Efron