it-swarm-pt.tech

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

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>

Poderia o fato de eu estar usando <Location> faz parte do problema?

68
Kit Roed

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 conseqüê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.

53
Dave Cheney

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

Não conheço outras distribuições, mas no Ubuntu/Debian, a configuração do Apache é 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 do Apache comuns .

51
Ivan

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.

9
Rune

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

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

3
Dominic Eidson

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

3
derobert

O AS Rune menciona, nos sistemas Debian, NameVirtualHost aparece em muitos arquivos - ports.conf, conf.d/virtual.conf e, possivelmente, nos seus próprios arquivos conf, disponíveis em 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.

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

2
Mo01

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!

2
Tiago