Crear y quitar VirtualHost en Apache

En primer lugar habria que definir que es un VirtualHost verdad? Pues son son Host Virtuales 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.

El primero es para crear host virtuales y paso a copiarlo aqui:

#!/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 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:

#!/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

Espero que les sirva asi como me sirvieron a mi.

perro

Ingeniero en Informática. Programador en PHP y Angular. Lo que mas adoro en el mundo es el conocimiento. Y el anime....y Japón...y el running...y bloguear claro y algunas otras cientos de cosas. Sigo buscando la manera de hacer mi primer millón.

8
Comenta!

avatar
joanhey

Hay una manera mas fácil.
Usar el Rapache en ubuntu. Es un configurador gráfico (con gui) que facilita este y muchos procesos de configuración del Apache.
Saludos

Luis Carlos

Genial, muchas gracias justo estaba pensando hacer unos yo XD

jhon
jhon

intente con estos 2 scripts pero no me funciona, en la misma pc si puedo ver los sitios pero desde otra pc no funciona

Hugo
Hugo

Copado!!! Parecido a este que hice yo:

http://codearte.com.ar/2011/06/script-creador-de-virtual-hosts/pero mas avanzado. Bueno post. Saludos!

Anonymous
Anonymous

gracias por compartirlo

Jwilliamromero
Jwilliamromero

Hola a todos. Use ese escribo pero solo logro acceder localemente con mi dominio. Pero desde internet no puedo acceder. Uso fedora linux y el comando a2ensite no lo encuentra en fedora. Ya tenia mi pagina funcionando, con  todo,. No cambio de IP ni nada mas. Solo pasarlo a otro equipo, pero el apache me ha tomado del pelo. Gracias a todos. Una ayuda a jwilliamromero@gmail.com