Como mencionamos en una oportunidad anterior, Apache puede utilizarse para hospedar un solo dominio por equipo o varios de manera simultánea en el mismo sistema. En este último caso se utiliza una modalidad conocida como hosts virtuales basados en nombre, tema que trataremos en este post y en el próximo.
Hosts virtuales en Debian
Para ilustrar la manera de crear hosts virtuales, utilizaremos Debian e indicaremos las diferencias que existen con CentOS al finalizar el tema en el próximo post.
Paso 1 – Deshabilitar el host virtual por defecto
Para comenzar, debemos deshabilitar el host que Apache sirve por defecto (es decir, los contenidos de /var/www/html si es que no cambiamos el DocumentRoot desde el archivo de configuración). Cuando se instala Apache en Debian o alguno de sus derivados, viene acompañado de una serie de herramientas para facilitar la administración del servidor web. Una de ellas, a2dissite, nos permite deshabilitar sitios o hosts virtuales servidos por Apache muy fácilmente tal como podemos ver en la Fig. 1:
cd /etc/apache2/sites-available a2dissite 000-default.conf service apache2 reload
Paso 2 – Crear los archivos de configuración para los hosts virtuales
Dentro de /etc/apache2/sites-available crearemos un archivo de configuración por cada host virtual que deseemos. Supongamos que queremos hospedar los dominios aguantecla.com y mecopalinux.com, por lo que necesitaremos crear los archivos aguantecla.com.conf y mecopalinux.com.conf con los siguientes contenidos:
IMPORTANTE: Los archivos de configuración de los hosts virtuales deben terminar en .conf. De otra manera, no serán reconocidos por las herramientas que los activan o inhabilitan.
aguantecla.com.conf:
<VirtualHost *:80> ServerAdmin webmaster@aguantecla.com ServerName aguantecla.com ServerAlias www.aguantecla.com DocumentRoot /var/www/aguantecla.com/public_html/ ErrorLog /var/www/aguantecla.com/logs/error.log LogLevel warn CustomLog /var/www/aguantecla.com/logs/access.log combined </VirtualHost>
mecopalinux.com.conf:
<VirtualHost *:80> ServerAdmin webmaster@mecopalinux.com ServerName mecopalinux.com ServerAlias www.mecopalinux.com DocumentRoot /var/www/mecopalinux.com/public_html/ ErrorLog /var/www/mecopalinux.com/logs/error.log LogLevel warn CustomLog /var/www/mecopalinux.com/logs/access.log combined </VirtualHost>
Paso 3 – Crear los directorios para hospedar cada dominio
A continuación, necesitaremos crear los directorios que hospedarán los contenidos y los logs de los sitios mencionados anteriormente:
mkdir -p /var/www/{aguantecla.com,mecopalinux.com}/{public_html,logs}
En el próximo post agregaremos los contenidos respectivos a cada sitio y comenzaremos a examinar los logs para inspeccionar el funcionamiento. ¡Nos leemos en breve!