Una vez instalado Apache en Windows, podemos proceder a definir un VirtualHost, VHost o Host Virtual el cual nos permitirá acceder a nuestro sitio a través del servidor web.
Antes que nada es necesario que definamos un dominio local para nuestro VirtualHost (para evitar utilizar localhost) en caso de que no contemos con un servidor de DNS.
Acceder al archivo de configuración
Para comenzar debemos recordar la ubicación donde instalamos Apache.
Una vez allí debemos abrir con un editor de textos el archivo: conf\httpd.conf
Permitir la utilización de Virtualhosts
Esta acción se realiza de diferentes maneras según la versión de Apache:
Versión 2.0.x
Quitar el comentario de la línea (sólo borrando el # inicial):
NameVirtualHost *:80
Versión 2.2.x
Quitar el comentario de la línea (sólo borrando el # inicial):
Include conf/extra/httpd-vhosts.conf
Agregar un VirtualHost
Nuevamente, dependiendo de la versión de Apache
Versión 2.0.x
Al final del texto de httpd.conf, copiar la plantilla propuesta y ajustarla
Versión 2.2.x
Editar el archivo conf\extra\httpd-vhosts.conf, borrar los virtualhosts definidos, copiar la plantilla propuesta y ajustarla
Reiniciar Apache
Procedemos a reiniciar el servicio de Apache para que tome la nueva configuración.
Probar el VirtualHost
Abrimos un navegador y accedemos al dominio local que hayamos determinado y veremos que se muestra el contenido correspondiente.
Plantilla de VirtualHost
<VirtualHost *:80>
ServerAdmin user@localhost
DocumentRoot SITE_PATH
<Directory SITE_PATH>
Options +Indexes
Allow from All
</Directory>
DirectoryIndex INDEX_LIST
ServerName DOMINIO_LOCAL
ErrorLog logs/www-error_log
CustomLog logs/www-access_log common
</VirtualHost>
A continuación les explico cada una de las líneas:
<VirtualHost *:80>
Define un VirtualHost. En lugar de * se podría indicar una dirección IP para que solamente se acceda al sitio a través de la misma y separado por dos puntos se indica el puerto, en este caso, el puerto por defecto 80.
ServerAdmin user@localhost
Establece el mail del administrador del VirtualHost (solo a fines nominativos)
DocumentRoot SITE_PATH
Determina la ubicación en disco donde se encuentra nuestro sitio. En SITE_PATH debemos indicar esa ruta.
<Directory SITE_PATH>
Define las configuraciones de la ruta a nuestro sitio. SITE_PATH debe establecerse igual que en la directiva DocumentRoot.
Options +Indexes
Indicamos de esta manera que se listen los archivos contenidos en el SITE_PATH si no se determinara uno por defecto.
Allow from All
Establece que todos los hosts puedan acceder al área indicada. La versión 2.2.x de Apache bloquea el acceso por defecto.
DirectoryIndex INDEX_LIST
Define el listado de archivos que el servidor web intentará abrir por defecto (en el orden presentado) cuando no se especifique uno. INDEX_LIST es una concatenación de archivos separados por coma: index.html, index.php
ServerName DOMINIO_LOCAL
Indica el dominio al cual responde este VirtualHost.
ErrorLog logs/www-error_log
Ubicación del log de errores
CustomLog logs/www-access_log common
Ubicación del log de accesos (requests) y su formato, en este caso “common”, el cual se encuentra definido previamente en la configuración de Apache
Ejemplo de VirtualHost configurado
<VirtualHost *:80>
ServerAdmin andres@localhost
DocumentRoot c:/www/site/
<Directory c:/www/site/>
Options +Indexes
Allow from All
</Directory>
DirectoryIndex index.php
ServerName virtualsite
ErrorLog logs/virtualsite-error_log
CustomLog logs/virtualsite-access_log common
</VirtualHost>
habiendo definido en el archivo hosts
127.0.0.1 virtualsite