Ostrzeżenie uruchamiania Apache 2: NameVirtualHost *: 80 nie ma VirtualHosts


68

Gdy mój serwer Ubuntu Apache (Apache 2) uruchamia się, pojawia się komunikat ostrzegawczy:

[warn] NameVirtualHost *:80 has no VirtualHosts

Jednak serwer WWW działa dobrze. Co mogę pomylić w konfiguracji mojej witryny, aby wyświetlało mi to ostrzeżenie?

Plik konfiguracyjny, o którym mowa (znajduje się w /etc/apache2/sites-available), ma brzmienie:

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

Czy fakt, że używam, może <Location>być częścią problemu?

Odpowiedzi:


53

Zmiana

<VirtualHost *>

czytać

<VirtualHost *:80>

Lub jego (NameVirtualHost *: 80) dodany dwukrotnie w pliku apache2 Confing. (Domyślnie jest dodany w pliku ports.conf)

To powinno usunąć błąd.

Poza tym: nie powinieneś ignorować tego błędu. Konfiguracja Apache, szczególnie gdy globbing wirtualnych hostów (np. Dołącz /etc/httpd/vhosts.d/*) nie jest stabilny. Oznacza to, że nie kontrolujesz jawnej kolejności ładowania hostów, więc domyślny vhost dla adresu IP staje się tym, który jest ładowany jako pierwszy, co może prowadzić do niezamierzonych konsekwencji.

Jednym z przykładów jest domyślny vhost dla adresu IP, który będzie również dostępny dla tego adresu IP, a nie jego nazwy . Może to spowodować wyciek informacji do Google, odnoszące się do adresu IP witryny zamiast nazwy, co może być mylące dla klientów.

Powyższy błąd NameVirtualHost może wskazywać, że apache załadował rzeczy w sposób nieoptymalny, więc nie należy go ignorować.


5
Możesz ustawić domyślny vhost w następujący sposób:<VirtualHost _default_ thehostname.com>
Amy B

51

Może to być spowodowane tym, że masz dyrektywę NameVirtualHost w więcej niż jednym miejscu.

Nie wiem o innych dystrybucjach, ale w Ubuntu / Debian konfiguracja Apache jest podzielona na kilka plików, więc musisz sprawdzić, gdzie jest duplikacja (httpd.conf, apache2.conf, ports.conf, conf.d / *).

Aha, właśnie znalazłem ten świetny zasób z dodatkowymi informacjami: Typowe błędne konfiguracje Apache .


3
Podany link wygląda na świetny zasób do zrozumienia niuansów plików konfiguracyjnych Apache. Dzięki!
Kit Roed

4
Dzięki! To był mój problem - stworzyłem virtual.conf dla NameVirtualHost, nie wiedząc, że jest już w ports.conf
rcampbell

Dzięki - Ten sam problem tutaj w domyślnej konfiguracji serwera Ubuntu: ports.conf zawiera NameVirtualHost : 80 i nie powinien się powtarzać w plikach / config z obsługą stron !
DrSAR

1
W moim przypadku ten problem był spowodowany tym, że ubuntu miał NameVirtualHost *:80zarówno wejście, jak ports.confi wejście conf.d/virtualhosts, co wydaje się być błędem Ubuntu.
puszysty

9

W pudełku Debian / Lenny: W /etc/apache2/ports.conf znajduje się dodatkowa instrukcja NameVirtualHost - może to być przyczyną tego problemu (ta sama instrukcja znajduje się w / etc / apache2 / sites-available / default) . Skomentowałem to oświadczenie i błąd zniknął.


3

Masz NameVirtualHost bez pasującego wpisu VirtualHost.

Zazwyczaj nie jest to błąd krytyczny, tylko błąd informacyjny.


3

Jest tak, ponieważ twoja linia NameVirtualHost ma numer portu ( :80), ale twoje sekcje VirtualHost nie.


2

Jak wspomniała Rune, w systemach Debiana NameVirtualHost pojawia się w wielu plikach - ports.conf, conf.d / virtual.conf i ewentualnie w twoich plikach conf w witrynach dostępnych

Upewnij się, że istnieje w jednym miejscu jako NameVirtualHost *: 80 (moje jest w conf.d / virtual.conf), a ostrzeżenia powinny zniknąć.

Jak wspomniano, należy również ustawić kierunek VirtualHost dla każdej dostępnej strony w tym formacie <VirtualHost *:80>


2

Mam ten sam problem, ale w pewnym momencie wyłączam domyślną stronę Apache. Piszę coś takiego

# a2dissite default

Po próbie ponownego uruchomienia Apache 2 pojawia się następujący komunikat:

„[warn] NameVirtualHost *: 80 nie ma VirtualHosts”

Następnie ponownie włączam „domyślną” stronę Apache 2 i wszystko znowu działa, użyte polecenie to:

# a2ensite default

To wszystko ludzie!


To była najlepsza rada.
jini

Niesamowita rada, prowadzę zpanelCP i nic nie działało, tylko to. dzięki ! :)
Eliran Efron
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.