web-dev-qa-db-fra.com

NameVirtualHost *: 80 n'a pas de VirtualHosts

J'ai deux noms de domaine, deux certificats SSL et deux adresses IP. J'essaye de configurer mes fichiers virtualhost Apache pour eux.

Tout d'abord, j'ai commenté toutes les instances de "NameVirtualHost" et "Listen" pour les ports 80 et 443. Ensuite, j'ai fait ce qui suit avec mes fichiers d'hôtes virtuels.

Fichier VirtualHost pour domain1:

NameVirtualHost 1.1.1.1:80
Listen 1.1.1.1:80
Listen 1.1.1.1:443
<VirtualHost 1.1.1.1:80>
    ServerName domain1.com
    ...
</VirtualHost>
<VirtualHost 1.1.1.1:443>
    ...
</VirtualHost>

Fichier VirtualHost pour domain2:

NameVirtualHost 2.2.2.2:80
Listen 2.2.2.2:80
Listen 2.2.2.2:443
<VirtualHost 2.2.2.2:80>
    ServerName domain2.com
    ...
</VirtualHost>
<VirtualHost 2.2.2.2:443>
    ...
</VirtualHost>
35
Jay

Quelque part dans votre configuration, probablement dans le fichier de configuration par défaut d'Apache (je pense que /etc/Apache2/httpd.conf dans Ubuntu? quelqu'un peut me corriger dans les commentaires), est une ligne qui ressemble à:

NameVirtualHost *:80

# Also
Listen 80
Listen 443

Mettez-les en commentaire et, dans vos fichiers de configuration VirtualHost, ajoutez:

Listen 111.111.111.111:80
Listen 222.222.222.222:80
# If also using SSL
Listen 111.111.111.111:443
Listen 222.222.222.222:443

NameVirtualHost 111.111.111.111:80
NameVirtualHost 222.222.222.222:80

Dans de nombreuses configurations Apache par défaut, les directives Listen et NameVirtualHost sont fournies avec des caractères génériques, ou globalement à appliquer à toutes les interfaces réseau. Puisque vous utilisez plusieurs adresses IP liées à différentes configurations, vous devez être plus spécifique dans vos directives de configuration que le fichier de configuration par défaut de votre distribution.

29
Michael Berkowski

J'avais ignoré la même erreur pendant les 2 mois où j'ai eu un serveur Ubuntu. J'ai trouvé que ce message a bien résolu l'erreur. Merci Michael !. Tout comme vous Jay , j'ai trouvé le coupable à /etc/Apache2/ports.conf. J'ai essayé simplement ceci:

# NameVirtualHost *: 80

"NameVirtualHost *: 80 n'a pas de VirtualHosts"

41
Randy Skretka