67 votes

Avertissement de démarrage d'Apache 2 : NameVirtualHost *:80 n'a pas de VirtualHosts

Lorsque mon serveur Apache Ubuntu (Apache 2) démarre, je reçois un message d'avertissement qui se lit comme suit :

[warn] NameVirtualHost *:80 has no VirtualHosts

Cependant, le serveur web fonctionne bien. Qu'est-ce qui pourrait être incorrect dans la configuration de mon site pour qu'il me donne cet avertissement ?

Le fichier de configuration en question (situé dans /etc/apache2/sites-available ) se lit comme suit (détails supprimés pour des raisons de brièveté)

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

Est-ce que le fait que j'utilise <Location> faire partie du problème ?

52voto

Dave Cheney Points 18132

Changement

<VirtualHost *>

à lire

<VirtualHost *:80>

Ou son (NameVirtualHost *:80) ajouté deux fois dans votre fichier Confing d'apache2. ( Par défaut il est ajouté dans le fichier ports.conf )

Cela devrait faire disparaître l'erreur.

A part : vous ne devez pas ignorer cette erreur. La configuration d'Apache, notamment lors de la globalisation des hôtes virtuels (par exemple Include /etc/httpd/vhosts.d/*) n'est pas stable. Cela signifie que vous ne contrôlez pas explicitement l'ordre de chargement des hôtes, de sorte que le serveur virtuel par défaut pour une IP devient celui qui est chargé en premier, ce qui peut avoir des conséquences inattendues.

Par exemple, le serveur virtuel par défaut d'une IP sera également disponible sur cette IP, plutôt que sur sa propre IP. nom . Cela peut entraîner une fuite d'informations sur Google en se référant à l'IP de votre site plutôt qu'à son nom, ce qui peut être source de confusion pour les clients.

L'erreur NameVirtualHost ci-dessus peut être un indice qu'Apache a chargé les choses d'une manière non optimale, vous ne devez donc pas l'ignorer.

51voto

Campbell Points 2129

Cela peut être dû au fait que la directive NameVirtualHost se trouve à plusieurs endroits.

Je ne sais pas ce qu'il en est pour les autres distributions, mais dans Ubuntu/Debian, la configuration d'Apache est divisée en plusieurs fichiers, vous devez donc vérifier où se trouve la duplication (httpd.conf, apache2.conf, ports.conf, conf.d/*).

Oh, et je viens de trouver cette excellente ressource avec plus d'informations : Mauvaises configurations courantes d'Apache .

9voto

Sur une boîte Debian/Lenny : Dans /etc/apache2/ports.conf, il y a une déclaration supplémentaire NameVirtualHost - qui pourrait être la cause de ce problème (il y a aussi la même déclaration dans /etc/apache2/sites-available/default). J'ai commenté cette instruction et l'erreur a disparu.

3voto

Bell Points 89

Vous avez un NameVirtualHost sans entrée correspondante de VirtualHost.

Cette erreur n'est généralement pas fatale, mais simplement informative.

3voto

Rob Points 1138

C'est parce que votre ligne NameVirtualHost comporte un numéro de port ( :80 ), mais pas vos sections VirtualHost.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X