Wie löse ich den Apache2-httpd-Fehler? Das Mischen von * Ports und Nicht-Ports mit einer NameVirtualHost-Adresse wird nicht unterstützt.

24

Hier ist der Fehler, den ich beim Booten von Apache2 bekomme:

 * 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

Ich habe diesen Leitfaden zum Einrichten von Apache zum Hosten mehrerer Websites zum ersten Mal befolgt:

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

Ich habe dann eine ähnliche Frage zu ServerFault gefunden und versucht, die Lösung anzuwenden, aber es hat nicht geholfen.

Hier ist ein Beispiel für meine endgültige VirtualHost-Konfiguration:

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

mit der Domain X'd raus um die Unschuldigen zu beschützen :-)

Außerdem habe ich die Datei conf.d / virtual.conf , die in der Anleitung erwähnt wird, so:

NameVirtualHost *

Das Seltsame ist, dass an zwei der drei Standorte alles gut zu funktionieren scheint.

Campbell
quelle
Veröffentlichen Sie Ihre vollständige (!) Apache-httpd-Konfiguration oder mindestens jede NameVirtualHost- und <VirtualHost ...> -Zeile.
Josefi
Sie können die beiden Typen nicht auf demselben ip: port mischen. Ich hatte ein Setup, bei dem ich zwei IP-Adressen hatte, eine hatte einen Massenhost, die andere hatte alle regulären namenbasierten Hosts. Was ist das Ziel? Was versuchst du zu erreichen? Was sind Ihre Einschränkungen?
Marcin

Antworten:

29

Die mit benannten IP-Adressen NameVirtualHostmüssen mit der IP-Adresse in jedem VirtualHostElement übereinstimmen .

Beispiel:

NameVirtualHost *:80
NameVirtualHost *:81

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

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

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

Weitere Informationen finden Sie in der Dokumentation zu Apache Virtual Host .

joschi
quelle
Ich wünschte, ich könnte mehr als einmal abstimmen. Sie sollten dies in der Dokumentation wirklich klarer ausdrücken.
Alex W
13

Ersetze dies:

NameVirtualHost *

Mit diesem:

NameVirtualHost *:80
Eric Dennis
quelle
2
Ich schätze die einfache Antwort und wünschte, ich könnte beides akzeptieren
rcampbell
5

Zusätzlich zu den Antworten ist mir aufgefallen, dass Sie SSL nicht ausführen können, ohne die: 80-Anweisung in allen NameVirtualHost- und VirtualHost-Anweisungen explizit deklariert zu haben. Apache unterstützt Folgendes nicht:

NameVirtualHost *

und

NameVirtualHost *: 443

Verwechselt in der gleichen Konfiguration, erhalten Sie Fehler bei Apache-Listening auf Port Null, wenn Sie das tun.

Für mich habe ich gerade hinzugefügt: 80 für jeden Host, damit SSL proprietär funktionieren kann.

Rodrigo
quelle
0

Ex:

<VirtualHost 85.25.97.252:80>
Servername domain.com
ServerAlias ​​* .domain.com
ServerAdmin [email protected]
DocumentRoot "/var/www/domain.com/httpdocs/"
<Verzeichnis "/var/www/domain.com/ httpdocs / ">
Options Indexes FollowSymLinks
AllowOverride All
Order erlauben,
Allow from all verweigern
</ Directory>
</ VirtualHost>

friv
quelle