¿Quieres aprender a configurar un virtual host en Apache desde Windows 10?
En este artículo te lo explico paso a paso, pero antes te recomiendo que le eches un vistazo a estos dos artículos si no sabes qué es un virtual host o no tienes Apache instalado en Windows 10:
Si ya tienes claro cómo instalar Apache y qué es un virtual host, entonces sigue leyendo para aprender paso a paso cómo configurar un virtual host en Apache desde Windows 10.
Esto es todo lo que vas a encontrar en este artículo:
Escenario |
Cómo definir un host en Windows 10 |
Cómo configurar un virtual host en Apache |
Vídeo con la explicación paso a paso |
Escenario
Antes de comenzar deja que te cuente qué vamos a configurar exactamente.
Con la configuración por defecto de Apache y el servicio arrancado puedes acceder a la siguiente web escribiendo en el navegador localhost:
Lo que queremos conseguir es que esté disponible una segunda web que será accesible a través de otro dominio. Para el ejemplo utilizaré miweb.local:
De esta forma tendremos dos webs: una que estará disponible a través de un virtual host asociado a localhost y otra en un segundo virtual host asociado a miweb.local.
Si necesitas configurar más dominios y más webs puedes seguir los mismos pasos que te voy a contar a continuación y configurar todos los virtual host necesarios.
Cómo definir un host en Windows 10
El primer paso es definir los host necesarios. Para el ejemplo serían localhost y miweb.local.
Por defecto localhost ya está definido, apunta a la IP local 127.0.0.1. Tendremos que definir miweb.local y hacer que también apunte a la IP local, puesto que Apache está en la misma máquina en la que vamos a realizar esta configuración.
La configuración de los host se encuentra en un fichero que está en C:\Windows\System32\drivers\etc\hosts:
La configuración es muy sencilla. Simplemente hay que indicar el nombre del host y asociarle la dirección IP a la que queremos traducirlo utilizando el siguiente formato:
<dirección IP> <host>
Para definir miweb.local tenemos que añadir la siguiente línea al final del fichero:
127.0.0.1 miweb.local
Fíjate en la siguiente captura. Puede que tu fichero de hosts varíe un poco, pero lo importante es la última línea:
Una vez añadido el host guardamos el fichero y vamos a comprobar que miweb.local apunta a 127.0.0.1.
Para ello abrimos el navegador y accedemos a http://miweb.local. Si es correcto tendrá que mostrarse la misma página que vimos al escribir localhost, puesto que ahora ambos hosts apuntan a la misma IP:
Perfecto, ahora ya podemos configurar un virtual host asociado a miweb.local para que se sirva la web que nos interesa y no la web por defecto de Apache.
Cómo configurar un virtual host en Apache
Vamos a configurar un virtual host dentro de Apache.
Crear el directorio que contendrá la web
Primero hay que crear el directorio que contendrá la web dentro del directorio htdocs de Apache, es decir, en C:\Apache24\htdocs. El directorio se llamará miweb (o como tu quieras):
Y dentro del directorio que acabamos de crear almacenaremos todos los ficheros necesarios para la web.
Yo voy a guardar un documento html. Lo voy a llamar index.html y tendrá el siguiente contenido:
<html>
<head>
<title>Mi Web</title>
</head>
<body>
<h1>Mi Web</h1>
</body>
</html>
Configurar el virtual host
Ahora que ya tenemos el contenido de la web en el directorio vamos a configurar un virtual host para que se muestre esta web cuando escribamos miweb.local en el navegador.
Dentro del directorio C:\Apache24\conf se encuentran los ficheros de configuración:
El fichero httpd.conf contiene la configuración principal de Apache. Esta configuración es la que carga Apache cuando arranca.
Tenemos que localizar dentro de este fichero la configuración asociada a los virtual host. Busca las siguientes líneas dentro de httpd.conf:
Como podrás comprobar la línea Include conf/extra/httpd-vhosts.conf tiene un carácter # delante. Eso significa que está comentada y, por tanto, no está cargando la configuración de los virtual host. Quita el carácter # para descomentarla y que cargue la configuración.
IMPORTANTE: Para poder editar los ficheros de configuración de Apache debes tener permisos de administrador, por tanto, abre un editor de texto (el bloc de notas por ejemplo) con permisos de administrador y abre los ficheros desde ahí. Si no sabes cómo hacerlo mira el vídeo que te dejo al final del artículo.
Lo siguiente es localizar el fichero indicado en esa línea (httpd-vhosts.conf), porque ahí es dónde tenemos que definir los hosts virtuales. Está en C:\Apache24\conf\extra:
Ahora añadimos en el fichero httpd-vhosts la configuración del nuevo host virtual que será la siguiente:
<VirtualHost *:80>
ServerName miweb.local
DocumentRoot C:\Apache24\htdocs\miweb
</VirtualHost>
Utilizaremos el puerto 80 (puerto por defecto de http) para atender las solicitudes.
Con ServerName indicamos el nombre del host (recuerda que lo definimos anteriormente en el fichero de hosts de Windows).
Usando DocumentRoot indicamos el directorio que contiene el recurso que queremos servir a través del ServerName. En el ejemplo es C:\Apache24\htdocs\miweb. Es el directorio que creamos anteriormente y en el que almacenamos el fichero index.html.
He utilizado una configuración muy básica para este ejemplo, pero se pueden definir muchos más parámetros dependiendo de las necesidades. Puedes consultar otras directivas de configuración en la documentación oficial de Apache.
Aplicar los cambios y probar
Ahora solo falta reiniciar Apache para que se apliquen los cambios. Desde la consola de Windows (cmd) ejecutaremos los siguientes comandos:
cd C:\Apache24\bin
httpd -k restart
Una vez reiniciado Apache ya solo nos queda probar desde el navegador que se abre el recurso correcto al acceder a http://miweb.local:
Si todo es correcto ya estaría el virtual host listo.
Vídeo con la explicación paso a paso
¿Te quedan dudas? Mira este vídeo que he grabado con todo el proceso explicado paso a paso:
Sígueme: