En primer lugar habria que definir que es un VirtualHost verdad? Pues son son Host Virtuales :P Eso significa que podremos tener varios dominios apuntados a la misma pc. Por lo general solemos tener varios proyectos webs en nuestras pcs, casi siempre acomodamos esos proyectos dentro de una misma carpeta (/var/www o la que sea). Y aunque no es muy incomodo trabajar asi hay algunos a los que les gustaria poder acceder de manera aun mas rapida y comoda a sus proyectos. Por ejemplo si tenemos un proyecto en http://localhost/websocial podriamos querer acceder a el simplemente escribiendo http://websocial
Ahora veamos como crear esos VirtualHost en Linux. Les iba a explicar como hacerlo paso a paso pero la verdad existe una manera mas sencilla. Son 2 script que encontre [aqui](http://juanbenavides.info/crear-y-quitar-virtual- hosts-en-apache-sobre-ubuntu/2009/08/).
El primero es para crear host virtuales y paso a copiarlo aqui:
[bash] #!/bin/bash
if [ -z $1 ] then echo “Debe ingresar el nombre del dominio” exit 1 else DOMINIO=$1 fi
if [ -z $2 ] then RUTA="/var/www/" else RUTA=$2 fi
echo “Configurando dominio “$DOMINIO
#CREAMOS LA ENTRADA EN /ETC/HOSTS echo “127.0.0.1 “$DOMINIO » /etc/hosts
#CREAMOS EL ARCHIVO DE VIRTUAL HOST touch /etc/apache2/sites- available/$DOMINIO
#AGREGAMOS EL VIRTUAL HOST echo " ServerAdmin god@$DOMINIO ServerName *.$DOMINIO ServerAlias $DOMINIO
DocumentRoot $RUTA$DOMINIO/ Options FollowSymLinks AllowOverride All Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all " > /etc/apache2/sites-available/$DOMINIO
#CREAMOS EL DIRECTORIO PARA EL DOMINIO mkdir $RUTA$DOMINIO chmod 775 $RUTA$DOMINIO
#CONFIGURAMOS APACHE a2ensite $DOMINIO
#REINICIAMOS APACHE /etc/init.d/apache2 reload
echo “Listo!” [/bash]
Su utilizacion es muy sencilla. Primero guardar todo lo anterior en un archivo, por ejemplo crearhost.sh y ahora abrimos una consola y nos movemos a donde esta el archivo y escribimos:
sudo sh crearhost.sh midominio /carpeta/proyecto
Con eso el script configurará el virtual host, así como el dominio local. El segundo parametro es opcional, si no envías un segundo parametro te creará el proyecto en la carpeta default de Apache: “/var/www/”.
De la misma manera tenemos el script para quitar un VirtualHost:
[bash] #!/bin/bash
if [ -z $1 ] then echo “Debe ingresar el nombre del dominio” exit 1 else DOMINIO=$1 fi
echo “Desconfigurando dominio “$DOMINIO
#REMOVEMOS DE APACHE a2dissite $DOMINIO
#BORRAMOS LA CONFIGURACION PARA APACHE rm /etc/apache2/sites- available/$DOMINIO
#BORRAMOS EL DOMINIO LOCAL sed “/$DOMINIO/ d” -i /etc/hosts
#REINICIAMOS APACHE /etc/init.d/apache2 reload
echo “Listo!” [/bash]
Su uso es igual al anterior, primero guardar en un archivo, por ejemplo: quitarhost.sh y en la consola escribir:
sudo sh quitarhost.sh midominio
Espero que les sirva asi como me sirvieron a mi.