Cómo crear hosts virtuales en MAMP

MAMPPHP

En otro tutorial ya hemos visto cómo puedes instalar MAMP para crear un entorno de desarrollo local. Sin embargo, la creación de hosts virtuales o virtualhosts es imprescindible cuando trabajas en múltiples proyectos. Para crearlos, primero tenemos que permitir la creación de hosts virtuales en la configuración de Apache y seguidamente ya podremos crearlos.

Hosts virtuales en Windows con MAMP

A continuación veremos cómo crear hosts virtuales en Windows con MAMP. El proceso difiere un poco de cómo crearías hosts virtuales en una instalación normal de Apache  en Windows, aunque no demasiado, ya que solo cambiarán los directorios.

Archivo httpd-vhosts.conf

Lo primero que debes hacer es incluir el archivo httpd-vhosts.conf en la configuración de Apache, que es en donde definiremos los hosts virtuales. Para ello sigue los pasos que ves a continuación. Decir que solamente deberás realizar esta configuración la primera vez que agregas un host virtual.

Accede al directorio de instalación de MAMP, que por defecto es el directorio c:/MAMP. Luego navega hasta el directorio confapache y edita el archivo httpd.conf con cualquier editor de texto.

Seguidamente busca la siguiente línea, en la sección # Virtual hosts:

#Include conf/extra/httpd-vhosts.conf

Lo que debes hacer es eliminar el caracter de sostenido del inicio de la línea para así borrar el comentario de la línea:

Include conf/extra/httpd-vhosts.conf

Si el Apache no detecta el archivo tendrás que usar la ruta absoluta hacia el mismo, por lo que, si partimos de que MAMP está instalado en el directorio C:/MAMP, la ruta absoluta al archivo de hosts será C:/conf/extra/httpd-vhosts.conf:

Include C:/MAMP/conf/extra/httpd-vhosts.conf

Si no existe dicho archivo, tendrás que crearlo. Puedes copiar y pegar una copia desde el directorio binapacheconfextra.

Ahora vamos a cambiar la configuración por defecto de los SymLinks para evitar que tengas que configurar este valor en todos tus hosts virtuales. Para ello, busca el siguiente bloque en el mismo archivo:

<Directory />
    Options Indexes FollowSymLinks
    AllowOverride None
</Directory>

Debes cambiar el valor de la opción AllowOverride por All:

<Directory />
  Options Indexes FollowSymLinks
  AllowOverride All
</Directory>

Finalmente guarda el archivo.

Crea y configura un host virtual

Para agregar un host virtual debes iniciar MAMP y asegurarte de que el directorio que se usa por defecto es el directorio c:/MAMP/htdocs. Seguidamente, edita de nuevo el archivo httpd-vhosts.conf y agrega el siguiente código, reemplazando dominio.localhost en la opción ServerName por el nombre del dominio que quieras usar con tu virtualhost y /ruta/hasta/el/directorio en la opción DocumentRoot por la ruta completa hasta la carpeta en donde están los archivos de tu proyecto:

<VirtualHost *:80>
  ServerName dominio.localhost
  DocumentRoot "/ruta/hasta/el/directorio"
</VirtualHost>

Es más que recomendable que el dominio que escojas como nombre del servidor tenga la extensión .localhost para evitar presentes y futuros problemas. De lo contrario es posible que no puedas acceder al dominio especificado desde tu navegador.

Siguiendo el esquema anterior, vamos a crear el host virtual miproyecto.localhost y lo vamos a enlazar con el directorio C:/Users/edu/hosts/miproyecto. La configuración sería la siguiente:

<VirtualHost *:80>
  ServerName miproyecto.localhost
  DocumentRoot "C:/Users/edu/hosts/miproyecto"
</VirtualHost>

Tal y como hemos configurado el host virtual de nuestro ejemplo, tendríamos que acceder a la URL miproyecto.localhost para acceder a él desde el navegador, ya que es el valor de la opción ServerName. Apache buscará los archivos de este proyecto en el directorio C:/Users/edu/hosts/miproyecto especificado en la opción DocumentRoot.

Agrega el dominio al archivo de hosts

Por último todavía tenemos que agregar el dominio que hemos especificado el archivo de hosts del sistema operativo para que lo reconozca como local. Para ello, sigue los siguientes pasos, dependiendo de tu sistema operativo.

En Windows debes acceder al directorio C:\WINDOWS\system32\drivers\etc\, abrir el archivo /hosts y agregar la siguiente línea:

127.0.0.1 miproyecto.localhost

Finalmente guarda el archivo.

Reinicia MAMP y ahora, si accedes a la URL miproyecto.localhost ya deberías ver el proyecto o los contenidos del directorio que hemos especificado en la creación del host.

Hosts virtuales en Mac con MAMP

A continuación veremos cómo crear hosts virtuales en Mac con MAMP. El proceso solamente cambia un poco con respecto a cómo crearías hosts virtuales en una instalación normal de Apache  en Mac.

Archivo httpd-vhosts.conf

Lo primero que debes hacer es incluir el archivo httpd-vhosts.conf en la configuración de Apache, que es en donde definiremos los hosts virtuales. Para ello sigue los pasos que ves a continuación. Decir que solamente deberás realizar esta configuración la primera vez que agregas un host virtual.

Accede al directorio ApplicationsMAMPconfapache mediante Finder y edita el archivo httpd.conf que verás en su interior con cualquier editor de texto.

Ahora busca la siguiente línea, en la sección # Virtual hosts:

#Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf

Elimina el caracter de sostenido del inicio de la línea para así borrar el comentario de la línea:

Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf

Ahora vamos a cambiar la configuración de los SymLinks que se usa por defecto. Busca la opción AllowOverride:

<Directory />
    Options Indexes FollowSymLinks
    AllowOverride None
</Directory>

Debes cambiar el valor de la opción AllowOverride por All:

<Directory />
  Options Indexes FollowSymLinks
  AllowOverride All
</Directory>

Y finalmente guarda el archivo.

Crea y configura un host virtual

Para agregar un host virtual debes iniciar MAMP y asegurarte de que el directorio que se usa por defecto es el directorio Applications/MAMP/htdocs. Luego debes editar el archivo httpd-vhosts.conf y agregar el código que ves a continuación, reemplazando dominio.localhost en la opción ServerName por el nombre del dominio que vas a utilizar con tu virtualhost, y /ruta/hasta/el/directorio en la opción DocumentRoot por la ruta de la carpeta en donde está tu proyecto:

<VirtualHost *:80>
  ServerName dominio.localhost
  DocumentRoot "/ruta/hasta/el/directorio"
</VirtualHost>

Es recomendable que el dominio local de tu host virtual tenga la extensión .localhost para así evitar problemas. De lo contrario es posible que no puedas acceder al dominio especificado desde tu navegador.

Siguiendo el esquema anterior, vamos a crear el host virtual miproyecto.localhost y lo vamos a enlazar con el directorio /Users/edu/hosts/miproyecto. La configuración sería la siguiente:

<VirtualHost *:80>
  ServerName miproyecto.localhost
  DocumentRoot "/Users/edu/hosts/miproyecto"
</VirtualHost>

Tendríamos que acceder a la URL miproyecto.localhost para acceder a él desde el navegador, ya que es el valor de la opción ServerName. Apache buscará los archivos de este proyecto en el directorio /Users/edu/hosts/miproyecto especificado en la opción DocumentRoot.

Agrega el dominio al archivo de hosts

Por último todavía tenemos que agregar el dominio que hemos especificado el archivo de hosts del sistema operativo para que lo reconozca como local. Tendremos que hacer uso de la consola. Si nunca la has utilizado, puedes consultar el tutorial de introducción a la línea de comandos de Mac. Para ello, sigue los siguientes pasos:

  1. Abre la terminal de comandos y ejecuta el siguiente comando para abrir el archivo de configuración de hosts de macOS:
    sudo pico /etc/hosts

    Seguramente se te pida tu contraseña de administrador cuando lo abras. Introdúcela.

  2. Debes agregar la línea siguiente al final del archivo:
    127.0.0.1 miproyecto.localhost
  3. Por último guarda el archivo pulsando las teclas CTRL+O y reinicia los servicios de MAMP.

Tras reiniciarlo, ya deberías ver el proyecto de tu directorio si accedes a la URL miproyecto.localhost:8888.

Cambia el puerto por defecto de MAMP

El puerto por defecto que usará MAMP en Mac es el puerto 8888, que tendrás que especificarlo tras el dominio que hayas configurado como URL. Si quieres puedes cambiar el puerto del puerto 8888 al puerto 80, que es el puerto HTTP estándar, de modo que no tengas que especificarlo. Para ello sigue estos pasos:

  1. Edita de nuevo el archivo /Applications/MAMP/conf/apache/httpd.conf.
  2. Busca la línea Listen 8888. Debes cambiar el puerto 888 por el 80 de modo que la línea quede así:
    Listen 80
  3. Luego busca la línea ServerName localhost:8888. Vambia también el puerto 888 por el 80 de modo que la línea quede así:
    ServerName localhost:80
  4. Guarda el archivo, inicia MAMP y desde el menú superior accede a MAMPPreferencesPorts. Aquí, cambia el puerto de Apache del puerto 80 al puerto 8888. De esta forma, el puerto de Apache será el 80, el de Nginx el 8888 y el de MySQL el 3306.
  5. Seguidamente reinicia MAMP y accede a la URL miproyecto.localhost, en la que ya se debería mostrar tu proyecto.

Cuando cambias el puerto de Apache al 80 no es necesario especificarlo, ya que este puerto es el que se usa por defecto en cualquier navegador, por lo que se sobreentiende que es el 80.

Y esto ha sido todo.


Avatar de Edu Lazaro

Edu Lázaro: Ingeniero técnico en informática, actualmente trabajo como desarrollador web y programador de videojuegos.

👋 Hola! Soy Edu, me encanta crear cosas y he redactado esta guía. Si te ha resultado útil, el mayor favor que me podrías hacer es el de compatirla en Twitter 😊

Si quieres conocer mis proyectos, sígueme en Twitter.

Deja una respuesta

“- Hey, Doc. No tenemos suficiente carretera para ir a 140/h km. - ¿Carretera? A donde vamos, no necesitaremos carreteras.”