_default_ VirtualHost si sovrappongono sulla porta 80


10

Ho aggiunto 2 host virtuali al mio file conf di apache2 come di seguito:

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

Ho quindi ricevuto l'errore dopo aver riavviato Apache ottengo:

[warn] VirtualHost predefinito si sovrappongono sulla porta 80, la prima ha la precedenza

Ho cercato su Google e hanno detto di decommentare la riga seguente, quindi ho fatto:

NameVirtualHost *:80

Riavvia e ora non visualizzo l'errore, ma entrambi i siti passano al primo sito.

con Centos5. Come posso risolvere questo problema?

Risposte:


13

Volete sicuramente NameVirtualHost senza commenti. Ciò indica al server di server diversi host virtuali in base ai nomi Doman utilizzati per raggiungerlo. Ecco perché vedi tutte le richieste andare al primo sito quando viene rimosso.


1
Sì, l'ho fatto e ancora non funziona.
David,

Non serve correttamente site2.com anche con esso? Sembra davvero che il tuo avviso stia semplicemente affermando che il tuo primo VirtualHost è il sito predefinito per nomi senza pari. Questo è essenzialmente il modo in cui funzionano gli host virtuali.
Christopher Karel,

1
Dopo aver decommentato quella riga, non ricevo un avviso ed entrambi i siti continuano a visitare site1
David,

È possibile che il tuo browser abbia appena memorizzato nella cache il contenuto di site1 nel dominio di site2? Prova a svuotare la cache o a eseguire un aggiornamento adeguato. (ctrl + F5)
Christopher Karel,

1

Ho già risolto questo problema con CWP

basta andare su /usr/local/apache/conf/sharedip.conf

controlla questo messo * nel tuo server IP

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>

quindi vai su /usr/local/apache/conf.d/vhost.conf e assicurati che ogni host virtuale sia simile a questo

# 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

questo funziona per me!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.