Como configurar Virtual Hosts en Apache (algo básico, para no olvidar)

Publicado por Norberto Herz el
Algo que hacía constantemente cuando mi principal lenguaje de programación era PHP, era la administración del servidor local para la creación de virtual hosts. Esto me permitía almacenar los proyectos en cualquier parte de la PC y poder apuntarlos sin la necesidad de crearlos en el wwwroot del Apache.
Con el correr del tiempo, fui olvidando como hacer tan sencilla tarea, y al retomar, en Linux, lo hacía mediante la creación de Symbolic Links (directamente a los directorios, aprovechando que estos, también son archivos para el File System del S.O.).
Volviendo a trabajar en un ambiente basado en Windows, tuve nuevamente esta necesidad. Una aclaración: Habiéndo probado el LAMP en Ubuntu, teniendo excelentes resultados, decidí darle una oportunidad al WAMP. No se molesten. Sigamos con el viejo y querido "appserv" que sigue siendo tan bueno como siempre.
Ahora si, para crear Virtual Hosts (explicación básica, sin meterme en detalles ni configuraciones adicionales).
Primero debemos chequear que el servidor este soportando esta característica. Para esto buscamos el archivo httpd.conf (suele estar en la carpeta de Apache \conf . En el caso del Appserv por defecto sería C:\AppServ\Apache2.2\conf).
Lo que haremos aquí es habilitar la variable vhost_alias_module:
Buscamos la siguiente línea: #LoadModule vhost_alias_module module/mod_vhost_alias.so y la descomentamos eliminando el "#".
En este mismo archivo vamos a indicar dónde se almacena la configuración de los virtual hosts. Buscamos la siguiente línea: #Include conf/extra/httpd-vhosts.conf y la descomentamos eliminando el "#".
En este momento, Apache "servirá" a los virtual hosts especificados en el archivo ..../conf/extra/httpd-vhosts.conf.

Ahora es momento de configurar estos virtual hosts.

Para no perder la capacidad de servir a todo lo que se encuentre en la carpeta wwwroot o www, creamos un primer virtual host que la apunte:


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

Nótese que utilizamos localhost como ServerName y ServerAlias (motivo por el cual no será necesario en para este vhost, ninguna entrada adicional en el archivo de hosts del S.O.).

Ahora, otro Virtual Host:


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

Solo quedaría un paso para poder apuntar a "Mi Proyecto" desde un browser y es la creación de la entrada en el archivo de HOSTS de windows.

Editamos para esto el archivo C:\Windows\System32\drivers\etc\hosts y agregamos la siguiente línea:
127.0.0.1 www.miproyecto.com

Al realizar todos estos cambios, es necesario reiniciar el Apache.

Espero que sirva esta información.