No puedo hacer que los hosts virtuales funcionen. Vea qué estoy haciendo mal (CentOS 6.0).

No puedo hacer que los hosts virtuales funcionen. Vea qué estoy haciendo mal (CentOS 6.0).

vhost.conf, ubicado en etc/httpd/vhost.d/

NameVirtualHost *:80

    <VirtualHost *:80>
         ServerAdmin [email protected]
         ServerName localhost
         ServerAlias localhost.example.com
         DocumentRoot /var/www/html/example.com/public_html/
         ErrorLog /var/www/html/example.com/logs/error.log
         CustomLog /var/www/html/example.com/logs/access.log combined
    </VirtualHost>

    <VirtualHost *:80>
         ServerAdmin [email protected]
         ServerName example.org
         ServerAlias www.example.org
         DocumentRoot /var/www/html/example.org/public_html/
         ErrorLog /var/www/html/example.org/logs/error.log
         CustomLog /var/www/html/example.org/logs/access.log combined
    </VirtualHost>

httpd.conf, configuración predeterminada, agregada al final:

Include /etc/httpd/vhosts.d/*.conf

Directorios raíz:

DocumentRoot "/var/www/html"

Directorios respectivos para los hosts virtuales creados en la carpeta anterior. Todos los permisos parecen correctos. Archivo index.php en cada public_htmldirectorio. Sin embargo, cuando introduzco localhost ahora solo me lleva a la página predeterminada de Apache 2, si elimino la línea, Include /etc/httpd/vhosts.d/*.confel servidor web funciona según lo requerido desde el directorio predeterminado y sirve cualquier archivo de índice que coloque allí.

Respuesta1

Según lo que escribió, no parece que tenga errores de sintaxis. Entonces haga esto en el archivo /etc/hosts (si lo está haciendo directamente desde el servidor):

127.0.0.1   example.org
127.0.0.1   example.com

O en el archivo host de su PC:

YOURSERVERIP  example.org
YOURSERVERIP  example.com

Y busque ese dominio en lugar de localhost.

La razón por la que simplemente ve la página web de Apache es porque Apache necesita saber a cuál va a ir; como aún no tiene configurado el DNS, no se envía nada a Apache con el nombre de host en cuestión, por lo que el valor predeterminado es la raíz del documento. .

Respuesta2

Dado que la línea Incluir está después de sus VirtualHosts, supongo que uno de esos vhosts incluidos está anulando los nuevos. ¿Qué dice "httpd -S"? (Puede que no sea "httpd", puede que sea "apache2" o algo más). La bandera -S le mostrará todos los hosts virtuales que haya configurado y le ayudará con la depuración.

Podrías intentar eliminar la línea de inclusión y ver si eso hace que tus nuevos bloques funcionen. También puede consultar su registro de errores para ver si hay alguna advertencia sobre su archivo de configuración.

información relacionada