Si desarrollas páginas web, es posible que uses un servidor local del tipo XAMP, MAMP, WAMP, etc…
El uso de un servidor local, además de ser necesario para procesar el código PHP, nos permite trabajar cómodamente en nuestro ordenador, y una vez terminado el trabajo a desarrollar, subir el proyecto realizado a un servidor VPS, dedicado o hosting compartido, para que pase a estar accesible para el mundo entero.
Pero en cuanto subes tu proyecto a internet, tienes que empezar a retocar el código cambiando la URL que has estado usando del tipo http://localhost:8888/misuperweb por el dominio real que tendrá el proyecto del tipo https://www.misuperweb.com.
Para evitar estos arreglos o minimizarlos, una solución es usar host virtuales, o virtual hosts.
Los virtual host en Apache nos permiten acceder a múltiples páginas web con sus respectivos dominios, que están alojadas en un mismo servidor con una sola IP.
Veámoslo con un ejemplo: En un hosting compartido que tiene una sola dirección IP hay 3 páginas web de diferentes clientes. Estas webs son:
Todas ellas tienen la misma direccion IP: 185.10.15.20. Pero sin embargo, cuando accedemos a www.pajarosdelmundo.com accedemos a la web de www.pajarosdelmundo.com y no a las otras web. ¿Porque? Pues por que el hosting compartido tiene configurado 3 virtualhost, uno para cada uno de las webs que hay alojadas, y así sabe que si alguien accede a www.pajarosdelmundo.com tiene que redirigir al usuario a la carpeta donde está alojada la página web de www.pajarosdelmundo.com y no a ninguna otra.
Pues obviamente, no es una obligación pero si ofrece muchas ventajas hacerlo… Por ejemplo:
Veamos paso a paso como crear varios virtual host en apache en esta ocasión lo haremos en un Mac con MAMP instalado:
Lo primero que tendremos que hacer, es decirle a nuestro ordenador, que cuando yo ponga www.misuperweb.com en el navegador, no se vaya a internet a esa URL o en el caso de que no la encuentre se ponga a buscarla en Google.
Para ello lo que haremos será redirigirla a nuestro ordenador, ya que es allí donde estará alojada nuestra web.
¿Pero cuál es la dirección de mi ordenador?
Todos los ordenadores tienen una dirección IP que es la propia máquina. Esa dirección es siempre 127.0.0.1. Es decir, si yo pongo 127.0.0.1 en el navegador de mi Macbook, el navegador se irá mi propio Macbook. También se conoce como localhost.
Obviamente, si no tengo un servidor web ejecutándose en mi ordenador, no encontrará nada y el navegador te dará un error del tipo 404 Not found (o similar)
Una vez sabemos ya que nuestro ordenador tiene la dirección IP 127.0.0.1, tenemos que decirle que www.misuperweb.com apunte a dicha dirección.
El modo mas sencillo de hacerlo es editando el archivo hosts.
El archivo hosts es un archivo que indica a donde tienen que apuntar las direcciones que le indiquemos.
Tiene una estructura muy básica, compuesta por dos columnas:

Como se puede ver en la imagen, cuando ponga localhost, redirigirá a127.0.0.1, cuando ponga misuperweb.com redirige a 127.0.0.1 (mi ordenador) y cuando ponga broadcasthost redigirá a 255.255.255.255 (todos los ordenadores de mi red)
Lo único que he hecho ha sido modificar el archivo hosts añadiendo la última linea.
Para modificar el archivo hosts en Mac lo mejor es hacerlo por terminal, ya que el archivos hosts solo puede modificarse por un usuario administrador.
Por lo tanto abrimos el terminal, y ponemos:sudo nano /etc/hosts
nos pedirá la contraseña de nuestro usuario y se abrirá el archivo hosts.
Nos dirigimos al final del archivo y añadimos la línea 127.0.0.1 misuperweb.com
En el caso que quieras añadir mas de un proyecto añadelos también en otras líneas. por ejemplo así:127.0.0.1 misuperweb.com 127.0.0.1 casasparahormigas.net 127.0.0.1 cosasparaperros.es
Guarda el archivo con ctrl+x y confirmando el guardado. A partir de ahora cada vez que ingreses una de las tres URL redirigirán a tu máquina.
Pero aún queda trabajo por hacer. Hasta ahora lo único que hemos hecho ha sido redirigir de una dirección a otra. Apache no sabe que la petición de cada una de las webs va a un sitio diferente. Ésto lo vamos a hacer en el siguiente paso.
En este paso lo que haremos será indicarle a Apache que vamos a usar host virtuales por un lado, y por otro configurar cada uno de los hosts que vamos a usar.
Primeramente recuerdo que tenemos que tener instalado MAMP.
Ahora tenemos que editar el archivo de configuración de Apache en MAMP. Ese archivo es el archivo httpd.conf que se encuentra en: sudo nano /Applications/MAMP/conf/apache/httpd.conf
En el caso que no tengas el archivo en esa ubicación por que tengas una versión diferente de MAMP y haya cambiado la ubicación, puedes buscar el archivo con el comando:sudo find /Applications/MAMP/ -iname "httpd.conf"
y te aparecerá en la ubicación en la que está alojado dicho archivo.
Lo que tenemos que modificar en el archivo es una línea de configuración. Lo puedes hacer con terminal o con un editor de texto, pero ten en cuenta que el archivo al ser un archivo de sistema, tendrás que abrirlo como administrador, si no no te dejará guardarlo.
Yo lo haré por terminal directamente con la orden sudo para ecitar esos problemas de permisos. Así que en el terminal tecleo esto:sudo nano /Applications/MAMP/conf/apache/httpd.conf
y en el archivo en cuestión buscaremos la línea que pone esto:# Virtual hosts # Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
Esta linea está casi al final del archivo (20-30 lineas últimas mas o menos), y tenemos que descomentar la línea que empieza por Include. Para descomentar una línea se hace eliminando la almohadilla. Así es como tiene que quedar:# Virtual hosts Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
Guardamos con ctrl+x y confirmamos los cambios.
Con este paso le hemos dicho a Apache que vamos a usar varios virtual host
Ahora vamos a configurar dos virtual host en apache. Podemos configurar sólo uno, o 25. Pero para el ejemplo nos vale con dos.
Si somos un poco observadores, habremos deducido que la linea que hemos descomentado en el paso anterior lo que hace es incluir el archivo httpd-vhosts.conf para tener en cuenta lo que hay en ese archivo escrito.
Pues lo que vamos a hacer ahora es precisamente editar ese archivo. Así que volvemos a teclear en el terminal:sudo nano /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
El archivo en cuestión nos muestra un par de ejemplos predefinidos de virtual hosts:
Vamos a analizar que significan cada una de las lineas que se muestran en la imagen anterior.
Sabiendo todo esto, será facil configurar dos virtualhost en Apache. Simplemente tendremos que añadir las siguientes líneas:<VirtualHost *:80> DocumentRoot "/Applications/MAMP/htdocs/misuperweb" ServerName misuperweb.com </VirtualHost>
Es muy sencillo: Le decimos la ubicación donde tenemos nuestra web guardada, y le decimos a través de que URL vamos a acceder a ella.
Las demás líneas no son necesarias ponerlas, aunque si puedes ponerlas de forma personalizada si las necesitas.
Adicionalmente podemos añadir uno o varios alias:<VirtualHost *:80> DocumentRoot "/Applications/MAMP/htdocs/misuperweb" ServerName misuperweb.com ServerAlias www.misuperweb.com </VirtualHost>
Con la línea ServerAlias www.misuperweb.com le estamos indicando a Apache que si accedemos a www.misuperweb.com, es lo mismo que si accedemos a misuperweb.com. Ambas URL nos llevarán a la web alojada en /Applications/MAMP/htdocs/misuperweb
Finalmente añadiremos otro virtualhost mas para hacer pruebas:<VirtualHost *:80> DocumentRoot "/Applications/MAMP/htdocs/casashormigas" ServerName casasparahormigas.es ServerAlias www.casasparahormigas.es </VirtualHost>
Ya está todo configurado correctamente. Solo nos queda guardar los cambios en el archivo httpd-vhosts.conf (recuerda que se hace con ctrl+x y confirmando los cambios) y una vez hecho todo esto, nos quedará reiniciar el servidor Apache.
La manera de reiniciar el servidor Apache en MAMP es tan simple como abrir MAMP y darle al botón de detener servidores. En la versión que estoy usando yo de MAMP pone simplemente stop:
Cuando vuelvas a iniciar el MAMP, ingresa en tu navegador la URL misuperweb.com y deberías ver el archivo index.html que tengas alojado en la carpeta /Applications/MAMP/htdocs/misuperweb. De igual manera, al ingresar la URL www.casasparahormigas.es deberías ver el proyecto que tengas alojado en la carpeta /Applications/MAMP/htdocs/casashormigas
De esta manera podrás trabajar con nombres de dominios finales, y con varios proyectos simultáneamente en tu ordenador.
Si tienes cualquier duda deja un comentario y te responderé lo antes posible!
Espero que os haya sido de utilidadad este tutorial!