Aviso de inicialização do Apache 2: NameVirtualHost *: 80 não possui VirtualHosts

68

Quando meu servidor Ubuntu Apache (Apache 2) é iniciado, recebo uma mensagem de aviso que diz:

[warn] NameVirtualHost *:80 has no VirtualHosts

No entanto, o servidor da web está funcionando bem. O que posso estar errado na configuração do meu site para que ele me dê esse aviso?

O arquivo de configuração em questão (localizado em /etc/apache2/sites-available) lê como (detalhes removidos por questões de brevidade)

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

O fato de eu estar usando pode <Location>fazer parte do problema?

Kit Roed
fonte

Respostas:

53

mudança

<VirtualHost *>

ler

<VirtualHost *:80>

Ou seu (NameVirtualHost *: 80) foi adicionado duas vezes no seu arquivo apache2 Confing. (Por padrão, é adicionado ao arquivo ports.conf)

Isso deve limpar o erro.

Além: você não deve ignorar este erro. A configuração do Apache, especialmente ao hospedar hosts virtuais (por exemplo, Include /etc/httpd/vhosts.d/*), não é estável. Isso significa que você não controla a ordem de carregar os hosts explicitamente, para que o vhost padrão de um IP se torne o primeiro carregado, o que pode levar a consequências não intencionais.

Um exemplo disso é o vhost padrão para um IP também estará disponível nesse IP, em vez de seu nome . Isso pode fazer com que as informações vazem para o Google, referindo-se ao IP dos sites, e não ao nome, o que pode ser confuso para os clientes.

O erro NameVirtualHost acima pode ser uma dica de que o apache carregou as coisas de uma maneira não ideal, portanto você não deve ignorá-lo.

Dave Cheney
fonte
5
Você pode definir o vhost padrão assim:<VirtualHost _default_ thehostname.com>
Amy B
51

Isso pode ocorrer porque você possui a diretiva NameVirtualHost em mais de um local.

Eu não conheço outras distribuições, mas no Ubuntu / Debian, a configuração do Apache está dividida em vários arquivos, então você deve verificar onde está a duplicação (httpd.conf, apache2.conf, ports.conf, conf.d / *).

Ah, e acabei de encontrar esse ótimo recurso com mais informações: Configurações incorretas comuns do Apache .

Ivan
fonte
3
O link que você forneceu parece um ótimo recurso para tentar entender as nuances dos arquivos de configuração do Apache. Obrigado!
Kit Roed
4
Obrigado! Este foi o meu problema - eu tinha criado um virtual.conf para NameVirtualHost, não sabendo que já estava em ports.conf
rcampbell
Obrigado - O mesmo problema aqui na configuração padrão do servidor ubuntu: ports.conf contém NameVirtualHost : 80 e não deve ser repetido nos arquivos de configuração / habilitados para sites !
DrSAR
11
No meu caso, esse problema ocorreu porque o ubuntu estava NameVirtualHost *:80dentro ports.confe dentro conf.d/virtualhosts, o que parece ser um bug do Ubuntu.
fofo
9

Em uma caixa Debian / Lenny: No /etc/apache2/ports.conf, há uma declaração NameVirtualHost adicional - que pode ser a causa desse problema (também há a mesma declaração em / etc / apache2 / sites-available / default) . Comentei essa afirmação e o erro desapareceu.


fonte
3

Você tem um NameVirtualHost sem uma entrada correspondente do VirtualHost.

Isso geralmente não é fatal, apenas um erro informativo.

Dominic Eidson
fonte
3

É porque sua linha NameVirtualHost possui um número de porta ( :80), mas suas seções do VirtualHost não.

derobert
fonte
2

O AS Rune menciona, nos sistemas Debian, NameVirtualHost aparece em muitos arquivos - ports.conf, conf.d / virtual.conf e possivelmente em seus próprios arquivos conf, disponíveis nos sites

Verifique se ele existe em um local como NameVirtualHost *: 80 (o meu está em conf.d / virtual.conf) e se os avisos devem ser exibidos.

Conforme mencionado, você também precisa tornar a direção do VirtualHost para cada site disponível com este formato <VirtualHost *:80>

Mo01
fonte
2

Eu tenho o mesmo problema, mas desabilito o site padrão do Apache em algum momento. Eu digito algo como

# a2dissite default

Depois de tentar reiniciar o Apache 2, recebo esta mensagem:

"[aviso] NameVirtualHost *: 80 não tem VirtualHosts"

Então, habilito o site 'padrão' do Apache 2 novamente e tudo funciona novamente, o comando usado é:

# a2ensite default

Isso é tudo, pessoal!

Peter Mortensen
fonte
Este tem sido o melhor conselho.
jini
Conselhos impressionantes, estou executando o zpanelCP e nada funcionou além disso. obrigado ! :)
Eliran Efron