Si queremos trabajar localmente en nuestros proyectos, podemos crear hosts virtuales, de manera que naveguemos por el sitio usando URLs como estamos acostumbrados a hacerlo en los sitios de Internet. Esto lo logramos de la siguiente manera:
1. Editamos el archivo hosts.
Abrimos el archivo hosts que se ubica en la carpeta etc que está en la raíz. Ejemplo:
$ sudo vi /etc/hosts (Utilizamos sudo para tener permisos de escritura sobre el archivo)
Agregamos una línea nueva e incluimos una linea similar a la siguiente (sustituir la palabra nombre, con el nombre de nuestro proyecto):
127.0.0.1 nombre. localhost. com |
Salvamos el archivo y listo. Vemos un ejemplo de como queda el archivo:
### Host Database## localhost is used to configure the loopback interface# when the system is booting. Do not change this entry.##127.0.0.1 localhost255.255.255.255 broadcasthost: :1 localhostfe80: :1%lo0 localhost127.0.0.1 nombre. localhost. com |
2. Indicamos en httpd. conf de Apache que vamos a usar virtual hosts.
Abrimos el archivo httpd. conf que está ubicado en /Applications/MAMP/conf/apache/httpd. conf
en MAMP 2 Buscamos las líneas que dicen:
# Virtual hosts#Include /Applications/MAMP/conf/extra/httpd-vhosts. conf |
en MAMP 3 Buscamos las líneas que dicen:
# Virtual hosts#Include /Applications/MAMP/conf/extra/httpd-vhosts. conf |
y removemos el símbolo: # que está antes de la línea que inicia con la palabra Include. Nos debe quedar de la siguiente forma:
# Virtual hostsInclude /Applications/MAMP/conf/apache/extra/httpd-vhosts. conf |
3. Crear los virtual hosts.
Abrimos el archivo /Applications/MAMP/conf/extra/httpd-vhosts. conf, si el archivo no ha sido antes modificado, lo vamos a encontrar como se muestra a continuación:
## Virtual Hosts## If you want to maintain multiple domains/hostnames on your# machine you can setup VirtualHost containers for them. Most configurations# use only name-based virtual hosts so the server doesn't need to worry about# IP addresses. This is indicated by the asterisks in the directives below.## Please see the documentation at # <URL: http://httpd. apache. org/docs/2.2/vhosts/># for further details before you try to setup virtual hosts.## You may use the command line option '-S' to verify your virtual host# configuration.## Use name-based virtual hosting.#NameVirtualHost *: 80## VirtualHost example:# Almost any Apache directive may go into a VirtualHost container.# The first VirtualHost section is used for all requests that do not# match a ServerName or ServerAlias in any <VirtualHost> block.#<VirtualHost *: 80> ServerAdmin webmaster@dummy-host. example. com DocumentRoot "/Applications/MAMP/Library/docs/dummy-host. example. com" ServerName dummy-host. example. com ServerAlias www. dummy-host. example. com ErrorLog "logs/dummy-host. example. com-error_log" CustomLog "logs/dummy-host. example. com-access_log" common< /VirtualHost><VirtualHost *: 80> ServerAdmin webmaster@dummy-host2. example. com DocumentRoot "/Applications/MAMP/Library/docs/dummy-host2. example. com" ServerName dummy-host2. example. com ErrorLog "logs/dummy-host2. example. com-error_log" CustomLog "logs/dummy-host2. example. com-access_log" common< /VirtualHost> |
Borramos las lineas de xml, y las cambiamos por las siguientes:
<VirtualHost *: 80> DocumentRoot /Users/mac/www/ ServerName localhost <Directory "/Users/mac/www"> AllowOverride All < /Directory> < /VirtualHost><VirtualHost *: 80> DocumentRoot "/Users/mac/www/MiProyecto" ServerName nombre. localhost. com <Directory "/Users/mac/www/MiProyecto"> AllowOverride All < /Directory> < /VirtualHost> |
El archivo debe quedar similar a la siguiente configuración:
## Virtual Hosts## If you want to maintain multiple domains/hostnames on your# machine you can setup VirtualHost containers for them. Most configurations# use only name-based virtual hosts so the server doesn't need to worry about# IP addresses. This is indicated by the asterisks in the directives below.## Please see the documentation at # <URL: http://httpd. apache. org/docs/2.2/vhosts/># for further details before you try to setup virtual hosts.## You may use the command line option '-S' to verify your virtual host# configuration.## Use name-based virtual hosting.#NameVirtualHost *: 80## VirtualHost example:# Almost any Apache directive may go into a VirtualHost container.# The first VirtualHost section is used for all requests that do not# match a ServerName or ServerAlias in any <VirtualHost> block.#<VirtualHost *: 80> DocumentRoot /Users/mac/www/ ServerName localhost <Directory "/Users/mac/www"> AllowOverride All < /Directory> < /VirtualHost><VirtualHost *: 80> DocumentRoot "/Users/mac/www/MiProyecto" ServerName nombre. localhost. com <Directory "/Users/mac/www/MiProyecto"> AllowOverride All < /Directory> < /VirtualHost> |
En mi caso, todos mis proyectos los tengo dentro de una carpeta llamada www que se encuentra en /Users/mac/, esto no es obligatorio, basta adaptar los paths según en lugar donde tengamos nuestros proyectos en la computadora.
Si decides tener logs personalizados estos por defecto quedaran en el directorio /Applications/MAMP/Library/logs.
Es importante verificar que el puerto escogido para los virtual host coincidan con el puerto definido con la directiva Listen en el archivo http. conf de apache como se muestra a continuación.
|
1
2
|
#Listen 12.34.56.78: 80Listen 80 |
Hechos los pasos anteriores, queda reiniciar los servidores del MAMP para que nuestros cambios tengan efecto. Luego abrimos nuestro navegador y colocamos la dirección http: //nombre. localhost. com/ para poder trabajar en nuestro proyecto.

Para futuros sitios, simplemente copiamos, pegamos y adaptamos en el archivo httpd-vhosts. conf, el siguiente XML.
<VirtualHost *: 80> DocumentRoot "/Users/mac/www/OTROproyecto" ServerName otro. localhost. com< /VirtualHost> |
Saludos!