Cómo configurar Virtual Hosts en AppServ

En este how-to, vamos a configurar nuestro servidor web local para que sirva dominios virtuales (o subdominios) utilizando virtual hosts.

Utilizaremos WindowsXP como nuestro Sistema Operativo y AppServ v2.5.10 como nuestro Servidor Web/Base Datos/PHP. Aquí hay una guía de Instalación del AppServ.

Lo primero que debemos hacer, es habilitar el módulo alias en nuestro archivo de configuración del Apache, para ello, debemos abrir el archivo httpd.conf ubicado en C:\AppServ\Apache2.2\conf (si habíamos seguido el procedimiento de instalación en el enlace anterior).

Alrededor de la línea 203, descomentamos la línea que corresponde al módulo alias del tal forma que quede así:

LoadModule vhost_alias_module module/mod_vhost_alias.so

El módulo vhost se cargará de ahora en más en cada arranque del Apache.

Ahora necesitamos descomentar la línea en donde se carga el archivo que contiene la configuración de los virtual hosts. En el mismo archivo, alrededor de la línea 506, también descomentamos la línea siguiente:

Include conf/extra/httpd-vhosts.conf

Ahora podemos guardar nuestros cambios y cerrar el archivo.

Con estos cambios, nuestro servidor Apache ahora puede servir dominios configurados en nuestro archivo de configuración de vhosts.

El siguiente paso, es configurar nuestros dominios virtuales, para ello, procedemos a editar el archivo httpd-vhosts.conf ubicado en C:\AppServ\Apache.2.2\conf\extra. El primer dominio virtual que debemos configurar es el localhost (así podemos acceder al PhpMyAdmin y a subcarpetas ubicadas en el document root del Apache). Editamos el primer contenedor del virtual host y nos aseguramos que quede de esta manera:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot "C:/AppServ/www"
    ServerName localhost
    ServerAlias localhost
    ErrorLog "logs/localhost-error.log"
    CustomLog "logs/localhost-access.log" common
</VirtualHost>

A continuación, configuramos un dominio virtual para un proyecto nuestro llamado “geekville” que está ubicado en C:\AppServ\www\geekville. En este directorio, creamos un archivo index.html con algo de texto dentro. Luego editamos el segundo contenedor (en el archivo httpd-vhosts.conf) y lo dejamos de esta forma:

<VirtualHost *:80>
    ServerAdmin webmaster@geekville.com
    DocumentRoot "C:/AppServ/www/geekville"
    ServerName www.geekville.com
    ErrorLog "logs/geekville-error.log"
    CustomLog "logs/geekville-access.log" common
</VirtualHost>

Ya tenemos nuestros dos dominios virtuales configurados. Ahora editamos nuestro archivo hosts local (usualmente ubicado en C:\Windows\system32\drivers\etc) para obligar a nuestro Sistema Operativo a resolver el dominio a nuestro servidor local. Añadimos la siguiente linea al final del archivo:

127.0.0.1    www.geekville.com

Ahora sólo nos resta reiniciar Apache para que lea nuestros cambios, nos vamos a Inicio > Panel de Control > Herramientas Administrativas > Servicios (o más rápido aún, presionamos Tecla Windows + R y escribimos services.msc), seleccionamos Apache2.2 y hacemos click en Reiniciar.

Ahora ya podemos abrir el navegador y escribir www.geekville.com. Si visualizas el archivo index.html con el texto que escribiste, tu virtual host ya está funcionando.

Happy coding!

18 comentarios en “Cómo configurar Virtual Hosts en AppServ

  1. hola amigo segui tusa intrucciones todo pero al momento de abrir el archivo httpd.conf no me permite me dice elija un programa para abrir este archivo espero me puedas ayudar pq soy nuevo en esto saludos webs,,,,

  2. Man exelente, Muy buena guia.
    Un problema:
    Cuando la carpeta es distinta a el root:
    por ejemplo

    default: c/appserv/www
    OTRO DOMINIO
    c/website/camello.com

  3. Perfecto Hermano Solucionado el Problema Entendi Mal no se crea una carpeta dentro de www/otra carpeta mmm en la misma www. configuramos el index.php que viene simplemente hay que cambiar los codigos fuentes muchas gracias hermano… Bless!!! Buen tuto!

  4. listo solucionado me falto poner :

    ServerAdmin webmaster@localhost
    DocumentRoot “C:/AppServ/www”
    ServerName localhost
    ServerAlias localhost
    ErrorLog “logs/localhost-error.log”
    CustomLog “logs/localhost-access.log” common

  5. Excelente material TODO FUNCIONA BIEN.
    El problema es cuando quiero ingresar desde otra pc en una Red Lan no carga nada la pagina. URGENTE AYUDA

  6. Despues de hacer ese cambio me aparece en mi servidor este error :

    Forbidden

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

    trabajo con win 7 me puedes decir de que se trata =(

  7. gracias todo me funcina pero cuando intento acceder desde otro equipo me sale el
    Forbidden
    You don’t have permission to access / on this server windows 7 appserv. lo mismo que a galax.

  8. Hola, como estas!!, mil gracias por este tutorial!!! entro con el dominio que puse y quedó muy bien, solo una pregunta más, mi máquina esta en red pero cuando alguien de esa misma red intenta acceder a la página no puede, como si no existiera el dominio, pero al entrar con la dirección de mi IP (fija) si pueden acceder.. que puedo hacer para que todos los de mi red interna puedan acceder tecleando solamente el nombre de mi dominio? saludos y muchas gracas de antemano

  9. Hola he configurado mi virtual host como me has dicho pero no consigo que me funcione. Me dice pagina no encontrada.
    Mi sitio web se llama http://www.asir.es y el indice lo tengo en la ruta c:\miweb\asir.
    Te adjunto mi archivo httpd-vhost, si cambio el primer host virtual tal y como lo tienes tu no me reinicia el apache.

    # IP addresses. This is indicated by the asterisks in the directives below.
    #
    # Please see the documentation at
    #
    # 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 block.
    #

    ServerAdmin [email protected]
    DocumentRoot “C:/Archivos de programa/Apache Software Foundation/Apache2.2/docs/dummy-host.smoreno.com”
    ServerName dummy-host.smoreno.com
    ServerAlias http://www.dummy-host.smoreno.com
    ErrorLog “logs/dummy-host.smoreno.com-error.log”
    CustomLog “logs/dummy-host.smoreno.com-access.log” common

    ServerAdmin [email protected]
    DocumentRoot “c:/miweb/asir/asir.es”
    ServerName http://www.asir.es
    ErrorLog “logs/asir.es-error.log”
    CustomLog “logs/asir.es-access.log” common

    Muchisimas gracias y un saludo.