_default_ VirtualHost-Überlappung an Port 80


10

Ich habe meiner apache2 conf-Datei wie folgt 2 virtuelle Hosts hinzugefügt:

<VirtualHost *:80>
    DocumentRoot /var/www/html/site1
    ServerName www.site1.com
    ServerAlias site1.com
</VirtualHost>


<VirtualHost *:80>
    DocumentRoot /var/www/html/site2
    ServerName www.site2.com
    ServerAlias site2.com
</VirtualHost>

Ich habe dann den Fehler nach dem Neustart von Apache erhalten, den ich bekomme:

[warn] Standardmäßige VirtualHost-Überlappung an Port 80, die erste hat Vorrang

Google gesucht und sie sagten, sie sollen die folgende Zeile auskommentieren, also tat ich:

NameVirtualHost *:80

Starten Sie neu, und jetzt wird der Fehler nicht angezeigt, aber beide Sites wechseln zur ersten Site.

Centos5 ausführen. Wie behebe ich dieses Problem?

Antworten:


13

Sie möchten auf jeden Fall, dass NameVirtualHost nicht kommentiert wird. Dadurch wird Ihr Server angewiesen, verschiedene virtuelle Hosts basierend auf den Doman-Namen zu bedienen, mit denen er erreicht wurde. Aus diesem Grund werden alle Anforderungen beim Entfernen an die erste Site gesendet.


1
Ja, das habe ich getan und es funktioniert immer noch nicht.
David

Funktioniert site2.com auch damit nicht ordnungsgemäß? Es sieht wirklich so aus, als ob Ihre Warnung nur besagt, dass Ihr erster VirtualHost die Standardwebsite für nicht übereinstimmende Namen ist. Genau so funktionieren Virtual Hosts.
Christopher Karel

1
Nachdem ich diese Zeile nicht kommentiert habe, erhalte ich keine Warnung und beide Sites gehen immer noch zu Site1
David

Ist es möglich, dass Ihr Browser gerade den Inhalt von Site1 unter der Domain von Site2 zwischengespeichert hat? Leeren Sie den Cache oder führen Sie eine ordnungsgemäße Aktualisierung durch. (Strg + F5)
Christopher Karel

1

Ich habe dieses Problem bereits mit CWP behoben

Gehen Sie einfach zu /usr/local/apache/conf/sharedip.conf

Überprüfen Sie dieses Put * in Ihrem IP-Server

NameVirtualHost *:80
<VirtualHost *:80>
    ServerName yourdomainserver.ltd
    DocumentRoot /usr/local/apache/htdocs
    ServerAdmin root@youremail.com
    <IfModule mod_suphp.c>
        suPHP_UserGroup nobody nobody
    </IfModule>
</VirtualHost>
<Directory "/">
        AllowOverride All
        Allow from all
        Order Deny,Allow
</Directory>

Gehen Sie dann zu /usr/local/apache/conf.d/vhost.conf und stellen Sie sicher, dass jeder virtuelle Host so aussieht

# vhost_start chango.com.ve
<VirtualHost *:80>
ServerName yourdomain.ltd
ServerAlias www.yourdomain.ltd
ServerAdmin youremail@yourdomain.ltd
DocumentRoot "/home/yourdomain/public_html"
ScriptAlias /cgi-bin/ "/home/yourdomain/public_html/cgi-bin/
# 
# Custom settings are loaded below this line (if any exist)
# Include "/usr/local/apache/conf/userdata/yourdomain/yourdomain.ltd/*.conf    
</VirtualHost>^M
# vhost_end yourdomain.ltd

das funktioniert bei mir!

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.