Script para Crear/Eliminar un VirtualHost

d
Autor: @Darvein
Descripción: Script escrito en bash que crea un VirtualHost automáticamente basado en el VirtualHost Default usando el archivo /etc/hosts para agregar el dominio al sistema.
Fuente: http://darvein.org
Crear Virtual host

#!/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/websites/"
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 www.$DOMINIO
  
  DocumentRoot $RUTA$DOMINIO/
  
    Options FollowSymLinks
    AllowOverride All
  
  
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
  
 
  ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
  
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
  
 
  ErrorLog $RUTA$DOMINIO/error.log
 
  # Possible values include: debug, info, notice, warn, error, crit,
  # alert, emerg.
  LogLevel warn
 
  CustomLog $RUTA$DOMINIO/access.log combined
 
    Alias /doc/ \"/usr/share/doc/\"
    
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    
" > /etc/apache2/sites-available/$DOMINIO
  
#CREAMOS EL DIRECTORIO PARA EL DOMINIO
mkdir $RUTA$DOMINIO
chmod 775 $RUTA$DOMINIO
chown dennis.dennis $RUTA$DOMINIO
  
#CONFIGURAMOS APACHE
a2ensite $DOMINIO
  
#REINICIAMOS APACHE
/etc/init.d/apache2 reload
  
echo "Listo!"



Al momento de ejecutar el script, se mandan 2 parámetros: el dominio y el directorio donde se encontrará el sitio web para ese VirtualHost.

 En caso de ingresar solo el dominio el directorio por defecto del VirtualHost será:

/var/www/websites/[nombre_del_dominio]

 En la linea:

chown dennis.dennis $RUTA$DOMINIO

 Debemos cambiar dennis.dennis por el usuario al que pertenecerá el sitio web.

Para eliminar el VirtualHost Creado


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

Comentarios del autor:
El script tiene una modificación donde agrego los logs de errores y de acceso, el script original fué visto en Paraisolinux

0 comentarios: