Crear y quitar VirtualHost en Apache

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

Suscribete GRATIS!
Recibe las novedades de Paraiso Linux en tu email

About perro

Casi Ingeniero en Informática. Programador en PHP y KumbiaPHP. Lo que mas adoro en el mundo es el conocimiento. Y el anime....y Japon...y el basketball...y bloguear claro. Aun sigo buscando la manera de hacer mi primer millon :)
Categorias php y mysql
Tags , , .
  • http://www.kumbiaphp.com 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

    • http://latingeeks.net perro

      Si intente usar Rapache pero se tildaba, no tengo idea porque, pero estos 2 scripts estan super sencillos :)

  • http://www.twitter.com/kentverger Luis Carlos

    Genial, muchas gracias justo estaba pensando hacer unos yo XD

  • 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

    • http://blogjapon.com.ar perro

      pero accedes correctamente? Es decir ip_remota/dominio
      No he probado si se puede acceder directamente como http://dominio desde otra pc asi que no puedo ayudarte en eso

  • 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!

    • Anónimo

      gracias por compartirlo

  • 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