Crear virtual Host en Apache con Xampp

Creado por richard  el 2015-02-28 16:32:59
Editar

Crear un host virtual puede ser útil por varias razones, una de las más comunes es que nos permitirá hacer pruebas de nuestros sitios de manera local utilizando exactamente la misma URL de nuestro sitio alojado en un servidor remoto, accederemos a nuestro sitio con URL como www.misitio.com en vez de utilizar subdominios sobre el localhost como localhost/misitio/ lo cual podría generar algunos conflictos de redirecciones y problemas con URL amigables, enlaces relativos, etc.

Para crear nuestro servidor virtual necesitaremos tener instalado apache por lo tanto utilizaremos el paquete Xampp que es un software libre multiplataforma, el cual de manera predeterminada nos instalara el servidor Apache, PHP, MySQL y algunos otros servicios.

Podemos descargar Xampp directamente desde el siguiente enlace
https://www.apachefriends.org/es/index.html

Su instalación es bastante sencilla, solo debemos seguir el asistente de instalación por lo que no necesita mayor explicación, una vez instalado el paquete Xampp continuaremos con la creacion de nuestro servidor virtual.

Lo primero que debemos hacer es modificar el archivo Host.
En Windows lo abriremos con el block de notas, si utilizando alguna distribución Linux como Debian puedes utilizar nano, mousepad, gedit o el editor de texto que prefieras.

Nota: Las rutas de los archivos corresponden a las versiones de windows 7 y Debian Wheezy para otros sistemas operativos buscar las rutas correspondientes en google.

En Windows:
C:\Windows\System32\drivers\etc\host
En Linux:
/etc/hosts

Al final del archivo host agregamos las líneas de las redirecciones correspondientes a nuestro servidor virtual, en mi caso quedara de esta manera.

Nota: todo lo que esta precedido de una almoadilla # son comentarios de ayuda y no son interpretados por apache.

# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
# Mi primer virtual host
127.0.0.1 www.richardcollao.cl

Guardamos los cambios y cerramos el archivo.

Los siguiente será editar el archivo httpd.conf

En Windows:
C:\xampp\apache\conf\httpd.conf
En Linux:
/opt/lampp/apache/conf/httpd.conf

Buscamos y descomentamos (quitar almoadilla #) la siguiente línea:
# Include conf/extra/httpd-vhosts.conf
Quedando de esta manera, por lo general esta línea en las últimas versiones de apache ya se encuentra descomentada.
Include conf/extra/httpd-vhosts.conf

Guardamos los cambios y cerramos el archivo.

Solo falta modificar el archivo httpd-vhosts.conf

En Windows:
C:\xampp\apache\conf\extra\httpd-vhosts.conf
En Linux:
/opt/lampp/apache/conf/extra/httpd-vhosts.conf

En Xampp existe una carpeta llamada htdocs que es la carpeta por defecto donde se encuentran los sitios como el index de Xampp, PHPMyAdmin, etc. Perfectamente podríamos crear una subcarpeta dentro de esta para nuestro servidor virtual pero lo recomendable es utilizar una ruta dentro de nuestra carpeta personal de usuario. Por ejemplo:

Para Windows sería:
C:\Users\usuario\www\richardcollao
En Linux:
/home/usuario/www/richardcollao

De esta manera creamos una carpeta contenedora por lo general llamada www que es donde pondremos nuestros sitios web, teniendo esto claro, abrimos el archivo httpd-vhosts.conf y al final del archivo agregamos las siguientes líneas:

En windows quedaría de esta manera.

<VirtualHost *:80>
DocumentRoot "C:\xampp\htdocs "
ServerName localhost
</VirtualHost>

<VirtualHost *:80>
DocumentRoot " C:\Users\usuario\www\richardcollao"
ServerName www.richardcollao.cl
<Directory " C:\Users\usuario\www\richardcollao">
AllowOverride all
Require all granted
</Directory>
</VirtualHost>

En Linux quedaría de esta manera.

<VirtualHost *:80>
DocumentRoot "/opt/lampp/ htdocs "
ServerName localhost
</VirtualHost>

<VirtualHost *:80>
DocumentRoot " /home/usuario/www/richardcollao"
ServerName www.richardcollao.cl
<Directory "/home/usuario/www/richardcollao ">
AllowOverride all
Require all granted
</Directory>
</VirtualHost>

Guardamos los cambios y cerramos el archivo.

Solo una aclaración final, como podemos ver el nuevo servidor virtual www.richardcollao.cl a diferencia de servidor localhost, contiene la directiva <directory> que lo que hace es otorgar permisos a la ruta donde se encuentra nuestro sitio ya que este se encuentra fuera de la ruta por defecto htdocs por lo tanto no hereda sus permisos, sino hacemos esto nos devolverá un error 403.

Acceso prohibido!
Usted no tiene permiso para accesar al directorio solicitado. No existe un documento índice, o el directorio está protegido contra lectura.


Estamos listos, reiniciamos el servicio apache y podemos trabajar en nuestro servidor virtual.
Servidor Web más utilizado, con mayor número de instalaciones a nivel mundial, es un proyecto de código abierto y uso gratuito, multiplataforma.
Conjunto de datos de un mismo contexto y almacenados sistemáticamente para su posterior uso.
Lenguajes que hacen referencia al codigo de marcado para la elaboración de páginas web.
Potente lenguaje de programación orientado a objetos, independiente del sistema operativo.
Lenguaje interpretado orientado a objetos desarrollado por Netscape que se utiliza en millones de páginas web y aplicaciones de servidor en todo el mundo
Sistema operativo de software libre inspirado en el sistema Unix, escrito por Linus Torvalds con la ayuda de miles de programadores en Internet
El modelado 3D es el proceso de desarrollo de una representación matemática de cualquier objeto tridimensional a través de un software especializado. Al producto se le llama modelo 3D
Lenguaje de programación principalmente orientado al desarrollo web, su código es ejecutado del lado del servidor.
Todo lo que no sea trabajo, solo temas recreativos para divertirse.