Como posso resolver o erro httpd do apache2 "não há suporte para misturar * portas e não * portas com um endereço NameVirtualHost"


24

Aqui está o erro que recebo ao inicializar o Apache2:

 * Starting web server apache2
 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
 [Wed Oct 21 16:37:26 2009] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
 [Wed Oct 21 16:37:26 2009] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
 [Wed Oct 21 16:37:26 2009] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
 [Wed Oct 21 16:37:26 2009] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
 [Wed Oct 21 16:37:26 2009] [warn] NameVirtualHost *:80 has no VirtualHosts

Segui pela primeira vez este guia sobre como configurar o Apache para hospedar vários sites:

http://www.debian-administration.org/articles/412

Encontrei uma pergunta semelhante no ServerFault e tentei aplicar a solução, mas não ajudou.

Aqui está um exemplo da minha configuração final do VirtualHost:

<VirtualHost *:80>
    ServerAdmin admin@xxx.com
    ServerName  www.xxx.com
    ServerAlias xxx.com

    # Indexes + Directory Root.
    DirectoryIndex index.html
    DocumentRoot /var/www/www.xxx.com

    # Logfiles
    ErrorLog  /var/www/www.xxx.com/logs/error.log
    CustomLog /var/www/www.xxx.com/logs/access.log combined
</VirtualHost>

com o domínio X'd para proteger os inocentes :-)

Além disso, tenho o arquivo conf.d / virtual.conf mencionado no guia da seguinte maneira:

NameVirtualHost *

O estranho é que tudo parece funcionar bem em dois dos três sites.


Poste sua configuração httpd completa do Apache (!) Ou pelo menos todas as linhas NameVirtualHost e <VirtualHost ...>.
Joschi

Você não pode misturar os dois tipos no mesmo ip: port. Eu tive uma configuração onde eu tinha dois ip's, um tinha massvhost pendurado, o outro tinha todos os hosts regulares baseados em nomes. Mais importante, qual é o objetivo? O que você está tentando alcançar? Quais são as suas restrições?
Marcin

Respostas:


29

Os endereços IP nomeados com NameVirtualHostdevem corresponder ao endereço IP em cada VirtualHostelemento.

Exemplo:

NameVirtualHost *:80
NameVirtualHost *:81

<VirtualHost *:80>
# ...
</VirtualHost>

<VirtualHost *:81>
# ...
</VirtualHost>

# This will not work!
<VirtualHost *>
# ...
</VirtualHost>

Leia a documentação do Apache Virtual Host para obter detalhes.


Gostaria de poder votar mais de uma vez. Eles realmente deveriam chamar isso mais claramente na documentação.
Alex W

13

Substitua isto:

NameVirtualHost *

Com isso:

NameVirtualHost *:80

2
Agradeço a resposta simples e gostaria de poder aceitar tanto
rcampbell

5

Adicionando às respostas, uma coisa que notei é que você não pode executar SSL sem ter declarado explicitamente: 80 em todas as diretivas NameVirtualHost e VirtualHost, o apache não suporta:

NameVirtualHost *

e

NameVirtualHost *: 443

Misturados na mesma configuração, você obterá erros no apache ouvindo na porta zero se fizer isso.

Para mim, acabei de adicionar: 80 a todos os hosts para que o SSL pudesse funcionar de maneira proprietária.


0

Ex:

<VirtualHost 85.25.97.252:80>
ServerName domain.com
ServerAlias ​​* .domain.com
ServerAdmin webmaster@domain.com
DocumentRoot "/var/www/domain.com/httpdocs/"
<Directory "/var/www/domain.com/ httpdocs / ">
Índices de opções FollowSymLinks
AllowOverride All
Order allow, negue
Allow from all
</Directory>
</VirtualHost>

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.