Como Configurar un Virtual Host en WampServer

Aquí voy a explicar como configurar un virtual host en Wampserver usando Windows para trabajar con varios dominios en localhost. Porque sentí la necesidad de darle una URL especifica a cada proyecto en el que esté trabajando, si este es tu caso estas en el lugar correcto.

Comencemos como dije estaremos usando lo siguiente:

  • Windows
  • Apache (usando WampServer)

Los proyectos que vamos a configurar son:

  • Proyecto1.com
  • Proyecto2.com

La ruta que viene por defecto para trabajar con documentos web en WampServer es “c:\Wamp\wwww\”, esto se puede configurar a cualquier otra ruta, ese es el menor de los problemas.

Lo que pasa con esto es que si se tiene varios proyectos en los cuales se está trabajando de forma simultanea, las URL serían “http://localhost/proyecto1”, “http://localhost/proyecto2”, los cuales apuntan a la ruta “c:\Wamp\wwww\” siendo este “c:\Wamp\wwww\proyecto1”, “c:\Wamp\wwww\proyecto2”. Pero que pasa si se quiere que cada carpeta de nuestro proyecto tenga su propia URL definida tal como un dominio que solo usemos de manera local para facilitarnos el trabajo y acortar un poco la URL.

Configurando Apache

En Apache existe lo que se llama VirtualHost, esto nos permite definir maquinas virtuales a las que podemos definirle una ruta, la cual apuntará a las rutas de los proyectos.

Primero quita el comentario # en el archivo httpd.conf, que se encuentra en la ruta “C:\Wamp\bin\apache\apache2.2.22\conf”.

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

Ahora definimos las maquinas virtuales en httpd-vhosts.conf, que se encuentra en “C:\Wamp\bin\apache\apache2.2.22\conf\extra”. En mi caso dejo el archivo completo.

#
# 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.
#

# localhost - para definir el localhost
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "c:\wamp\www"
ServerName localhost
</VirtualHost>

# miproyecto1.com - definimos el dominio con el que trabajaremos nuestro proyecto 1
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "c:\wamp\www\proyecto1"
ServerName miproyecto1.com
</VirtualHost>

# miproyecto2.com - definimos el dominio con el que trabajaremos nuestro proyecto 2
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "c:\wamp\www\proyecto2"
ServerName miproyecto2.com
</VirtualHost>

Agregar las Máquinas al hosts

Edita el archivo hosts que se encuentra en “C:\WINDOWS\system32\drivers\etc\” y agrega estas lineas.

127.0.0.1 localhost
127.0.0.1 proyecto1.com
127.0.0.1 proyecto2.com

Accediendo desde otra PC

Asumiendo que Wampserver está instalado en la PC1, la cual tiene una IP fija configurada 192.168.1.10 y se quiere acceder desde la PC2 y PC3.

Para ello se tienen que editar unas lineas en el archivo httpd.conf que se encuentra en “C:\Wamp\bin\apache\apache2.2.22\conf”, como las que se muestran debajo:

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

Solo comenta con # la última linea.

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    #Deny from all
</Directory>

Ahora en PC2 y PC3, edita el archivo hosts de windows en cada una y agrega estas lineas recordando que la IP fija de PC1 donde está instalado Wampserver es 192.168.1.10

192.168.1.10 proyecto1.com
192.168.1.10 proyecto2.com

Esto redirecciona proyecto1.com y proyecto2.com a las maquinas virtuales que ya se han creado en apache.

Ahora reinicia todos los servicios con Wampserver, y comienza a trabajar cómodamente en localhost.

Posibles Problemas

La IP donde está instalado Wampserver debe ser fija, no asignada por DHCP, las IP de los servidores deben ser estáticas no dinámicas.

Desactiva el Firewall o permite el acceso a la PC2 y PC3, los firewalls bloquean el trafico que viene desde fuera ocasionando que no se pueda acceder al dominio local.

Si usas wordpress y no te funcionan los permalinks aquí explico como hacerlo en localhost.

Recomendado
  • Josep

    Hola lo que quiero hacer es casí lo mismo pero sin el nombre de dominio solo quiero que funcione con una IP Fija 192.168.1.4 para ser exactos.

    El problema esta en que me sale:

    Forbidden
    You don’t have permission to access / on this server.

    Eh seguido los pasos correctamente y nada quisiera que me ayudes porfavor por que es URGENTE es un sistemita que se hizo y funcionaba perfectamente en AppServ sin cambiar Virtualhost ni nada y antes de que empezara con esto de virtual host pense que funcionaria sin necesidad de crear esto y no paso nada tambien me salia esa advertencia de :

    Forbidden
    You don’t have permission to access / on this server.

    Muchas Gracias y estuvo bueno el tutorial éxitos!

    • Para acceder con la IP fija solo tienes que usar la misma IP donde este instalado el servidor, sea wampserver o appserver, algo como http://192.168.1.20/mi-pagina donde mi-pagina es la carpeta y puedes acceder desde otra maquina también. Todo va a depender si usas un script como wordpress que guarda en su base de datos la ruta de la url donde esta instalado, si solo vas usar la IP no es necesario crear un virtual host, ya que solo se usan para definir maquinas virtuales

      Si activas los virtual host para poder acceder a las carpeta por el navegador tienes que tener definido el localhost y añadirlo al archivo host de windows, prueba creando un server name con el nombre de la IP.

      Quedo claro o te entendí mal?

  • Miguel Rodriguez

    buena explicación (y)

  • maria

    pues la verdad tiene mucha informacion interesante

  • gsnet80

    Buenas tardes, en mi caso todo funciona bien pero me encuentro con que cuando en el PC cliente ponen la ruta que he configurado como virtual host les muestra la IP del equipo servidor. ¿No hay forma de establecer la ruta para que no les muestre la IP?

    Gracias de antemano.

    Saludos.
    Frank

    • Configurando el archivo host de la pc local, indicando la ip y la ruta a la cual va acceder. En windows el archivo host se encuentra en C:WindowsSystem32driversetchosts

    • gsnet80

      Así lo hice pero me sigue convirtiendo en la url el host por la IP. ¿tendrá que ver con los ALIAS de apache? No he creado
      ninguno para la carpeta en sí, solo usé el archivo httpd.conf.

      Gracias de nuevo.

      Saludos cordiales.

    • Si tienes que crear los alias con el archivo httpd-vhosts.conf.

  • jonhyboys

    No arranca Wamp

  • jonhyboys

    Estoy escuchando en el puerto 8000 porque el otro lo ocupa IIS desde hace semanas estoy intentando que funcione esto de los Virtual Hosts pero nada nunca funciona, al quitar el comentario a la línea del Include conf/extra/httpd-vhosts.conf dejo de funcionar wamp, siempre está en color naranja

    • Si no te funciona, verifica que no tengas algo mal escrito en el archivo httpd.conf y en el mismo httpd-vhosts.conf. A veces se nos escapa algo y debido a eso apache no sube y por eso se te presenta en color naranja el estado de wamp.

  • Bernardo Sanchez Gutierrez

    Hola yo tengo un problema, al crear el host virtual me aparece asi:

    mihost.com y deberia ser mihost.com/. la diagonal invertida es la que me esta dando problemas, sabes como puedo arreglar eso? uso windows 7 y wamp 2.5.1.

    Gracias

  • erick vejas

    olle queria saber como ago para que el pc2 y pc3 abran la pag alojada en mi wampserver no puedo abrirla con el dominio colocado para la pag en la pc2 y pc3 solo abre con la ip fija y asi no me gusta quiero que sea por el dominio y muchisimas gracias por ese aporte esta muy bueno

    • Tienes que editar el archivo host de la pc2 y pc3 como se muestra en el ejemplo.

  • Danny Francisco Peña

    Hola,

    He creado un alias para acceder fácilmente a la carpeta donde tengo unos ejercicios de una web. Los pasos que seguí fue entrar a Wampserver, ir a “alias directories”, luego ir a la opción “add alias”, allí primero puse el nombre que quería ponerle a la carpeta (sitios en mi caso) y por ultimo le indique la dirección donde estaba la carpeta. Sucede que puedo entrar en el navegador a Localhost sin problemas alguno, pero cuando intento entrar al acceso que cree (sitios) me da el siguiente error:
    Forbidden
    You don’t have permission to access /sitios/ on this server.
    Apache/2.4.9 (Win32) PHP/5.5.12 Server at localhost Port 80
    Favor de darme una mano con este tema, ya que me han dicho que este foro es uno de los mejores para este tipo de tema.

    Saludos,

    Danny Francisco Peña
    República Dominicana

  • Danny Francisco Peña

    Hola,

    He creado un alias para acceder fácilmente a la carpeta donde tengo unos
    ejercicios de una web. Los pasos que seguí fue entrar
    a Wampserver, ir a “alias directories”, luego ir a la
    opción “add alias”, allí primero puse el nombre que quería ponerle a
    la carpeta (sitios en mi caso) y por ultimo le indique la dirección donde
    estaba la carpeta. Sucede que puedo entrar en el navegador a Localhost sin problemas alguno, pero cuando intento entrar al acceso que cree (sitios) me da el siguiente error:

    Forbidden

    You don’t have permission to access /sitios/ on this server.
    Apache/2.4.9 (Win32) PHP/5.5.12 Server at localhost Port 80

    Favor de darme una mano con este tema, ya que me han dicho que este es
    uno de los mejores lugares para este tipo de tema.

    Saludos,

    Danny Francisco Peña
    RepúblicaDominicana

    • Hola Danny,

      Espero que no sea demasiado tarde la respuesta. Personalmente prefiero alojar todos mis proyectos web en una carpeta por fuera de WAMP. En mi caso C:vhosts. En esta carpeta creo una subcarpeta para cada proyecto y configuro un virtual host para cada una. Esto permite un entorno de desarrollo un poco más cercano a lo que sería un servidor real y es más claro en el manejo de rutas, assets y a la hora de hacer debug y pruebas.

      Puedes ver el procedimiento aquí. Espero sea de utilidad: http://webintegral.com.co/como-crear-un-servidor-virtual-virtual-host-usando-wamp-y-windows-7-8-o-10/

      Saludos.

    • Cuando hice el post usaba WAMP pero ya ahora uso vagrant y creo mis proyectos en una carpeta aparte asi como dices, gracias por el comentario.

  • Juan Torregrosa Vieco

    hola, llevo mucho tiempo intentado buscar una solucion pero no la encuentro, necesito hacer un alias que apunte a una carpeta, me explico, en vez de

    192.168.1.10 proyecto1.com, necesito que sea 192.168.1.10 proyecto1.com/carpeta ,parece una tonteria pero llevo tiempo sin encontrar un remedio…

    • Solo hazlo directo en el archivo httpd-vhosts.conf en vez de DocumentRoot “c:wampwwwproyecto1” cambialo a DocumentRoot “c:wampwwwproyecto1carpeta”.

      Asi de facil 🙂