_default_ VirtualHost se superpone en el puerto 80

10

He agregado 2 hosts virtuales a mi archivo conf de apache2 como se muestra a continuación:

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

Luego recibí el error después de reiniciar Apache, obtengo:

[advertir] Superposición de VirtualHost predeterminada en el puerto 80, el primero tiene prioridad

Busqué en Google y me dijeron que descomentara la línea de abajo, así que hice:

NameVirtualHost *:80

Reinicie, y ahora no obtengo el error, pero ambos sitios van al primer sitio.

corriendo Centos5. ¿Cómo soluciono este problema?

David
fuente

Respuestas:

13

Definitivamente quieres NameVirtualHost sin comentarios. Eso le dice a su servidor que sirva diferentes hosts virtuales basados ​​en los nombres de Doman utilizados para llegar a él. Es por eso que ves que todas las solicitudes van al primer sitio cuando se eliminan.

Christopher Karel
fuente
1
Sí, lo he hecho y todavía no funciona.
David
¿No sirve correctamente site2.com incluso con él? Realmente parece que su advertencia solo indica que su primer VirtualHost es el sitio predeterminado para nombres sin igual. Que es esencialmente cómo funcionan los hosts virtuales.
Christopher Karel
1
Después de comentar esa línea, no recibo una advertencia y ambos sitios siguen yendo al sitio1
David
¿Es posible que su navegador haya almacenado en caché el contenido del sitio1 bajo el dominio del sitio2? Intente borrar su caché o hacer una actualización adecuada. (Ctrl + F5)
Christopher Karel
1

Ya solucioné este problema con CWP

simplemente vaya a /usr/local/apache/conf/sharedip.conf

marque esto poner * en su servidor ip

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>

luego vaya a /usr/local/apache/conf.d/vhost.conf y asegúrese de que cada virtualhost se vea así

# 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

esto funciona para mi!

luis macayo
fuente