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

David
quelle

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.

Christopher Karel
quelle
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 [email protected]
    <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 [email protected]
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!

Luis Macayo
quelle