Cómo crear y quitar VirtualHost en Apache

Los Host Virtuales básicamente permiten tener varios dominios apuntados a la misma PC. Ese tipo de herramientas muchas veces agiliza el acceso y permite trabajar de manera más cómoda. A continuación, te explicamos cómo crear y quitar VirtualHost en Linux con solo 2 scripts.
 

Los VirtualHost son Host Virtuales que, básicamente, permiten 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 así, hay algunos a los que les gustaría poder acceder de manera aun más rápida y cómoda a sus proyectos. Por ejemplo si tenemos un proyecto en
http://localhost/websocial, podríamos 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 más sencilla. Son 2 script:

El primero es para crear host virtuales:

#!/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 "<VirtualHost *:80>
ServerAdmin god@$DOMINIO
ServerName *.$DOMINIO
ServerAlias $DOMINIO

DocumentRoot $RUTA$DOMINIO/
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory $RUTA$DOMINIO/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>" > /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!"

Su utilización 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 parámetro es opcional, si no envías un segundo parámetro te creará el proyecto en la carpeta default de Apache: “/var/www/”.

De la misma manera tenemos el script para quitar un VirtualHost:
#!/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!"

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

 
Kingston