Comment puis-je résoudre l'erreur httpd d'apache2 «le mélange de ports * et de ports non * avec une adresse NameVirtualHost n'est pas pris en charge»

24

Voici l'erreur que j'obtiens lors du démarrage d'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

J'ai d'abord suivi ce guide sur la configuration d'Apache pour héberger plusieurs sites:

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

J'ai ensuite trouvé une question similaire sur ServerFault et j'ai essayé d'appliquer la solution, mais cela n'a pas aidé.

Voici un exemple de ma dernière configuration VirtualHost:

<VirtualHost *:80>
    ServerAdmin [email protected]
    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>

avec le domaine X'd pour protéger les innocents :-)

De plus, j'ai le fichier conf.d / virtual.conf mentionné dans le guide qui ressemble à ceci:

NameVirtualHost *

La chose étrange est que tout semble bien fonctionner pour deux des trois sites.

rcampbell
la source
Publiez votre configuration complète (!) Apache httpd ou au moins chaque ligne NameVirtualHost et <VirtualHost ...>.
joschi
Vous ne pouvez pas mélanger les deux types sur le même port ip:. J'ai eu une configuration où j'avais deux IP, l'un avait massvhost accroché, l'autre avait tous les hôtes réguliers basés sur le nom. Plus important encore, quel est l'objectif? Qu'essayez-vous de réaliser? Quelles sont vos contraintes?
Marcin

Réponses:

29

Les adresses IP nommées avec NameVirtualHostdoivent correspondre à l'adresse IP de chaque VirtualHostélément.

Exemple:

NameVirtualHost *:80
NameVirtualHost *:81

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

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

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

Lisez la documentation Apache Virtual Host pour plus de détails.

joschi
la source
J'aimerais pouvoir voter plus d'une fois. Ils devraient vraiment le dire plus clairement dans la documentation.
Alex W
13

Remplacez ceci:

NameVirtualHost *

Avec ça:

NameVirtualHost *:80
Eric Dennis
la source
2
J'apprécie la réponse simple et j'aimerais pouvoir accepter les deux
rcampbell
5

Ajout aux réponses, une chose que j'ai remarquée est que vous ne pouvez pas exécuter SSL sans avoir déclaré explicitement le: 80 sur toutes les directives NameVirtualHost et VirtualHost, apache ne supportera pas d'avoir:

NameVirtualHost *

et

NameVirtualHost *: 443

Mélangé dans la même configuration, vous obtiendrez des erreurs lors de l'écoute d'apache sur le port zéro si vous faites cela.

Pour moi, je viens d'ajouter: 80 à chaque hôte pour que SSL puisse fonctionner correctement.

Rodrigo
la source
0

Ex:

<VirtualHost 85.25.97.252:80>
ServerName domain.com
ServerAlias ​​* .domain.com
ServerAdmin [email protected]
DocumentRoot "/var/www/domain.com/httpdocs/"
<Directory "/var/www/domain.com/ httpdocs / ">
Options Index FollowSymLinks
AllowOverride All
Order autoriser, refuser
Autoriser de tous
</Directory>
</VirtualHost>

friv
la source