Apache: configurar host virtual

¿Configurar host virtual en Apache Web Server? ¡Aquí la respuesta!

Es bastante común tener la necesidad de implementar dos o varios websites en un mismo servidor, ya sea por algún subdominio u otra página web cualquiera. Para solventar todo esto necesitamos configurar hosts virtuales en apache, cada uno apuntando al directorio donde tenga su respectiva aplicación web. Para ello copiaremos al directorio /etc/apache2/sites-enabled/ el fichero por defecto de configuración de vhost y lo renombraremos al nombre del website que queramos incluir.

cd /etc/apache2/sites-enabled
cp ./000-default ./nombre_del_sitio

Una vez copiado tenemos que editarlo, yo en mi caso usaré nano, pero podéis usar cualquier otro editor de texto.

nano /etc/apache2/sites-enabled/conectabell.com

vhost

Usamos DocumentRoot para decir cuál es la ruta del directorio raíz de nuestro website, por defecto si estás usando debian será /var/www/ . Tenemos que generar unas etiquetas <directory> donde indicaremos las opciones de los directorios de nuestro virtual host. Si queremos deshabilitar el listado de directorios por defecto debemos modificar parámetro «Options» añadiéndole en este caso «-Indexes».

En el caso que queramos añadir un subdominio a otro existente copiaremos el fichero que tengamos de nuestro dominio principal y modificaremos ServerName y ServerAlias de la siguiente forma:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
	ServerName otrodominio.conectabell.com
	ServerAlias www.otrodominio.conectabell.com
	DocumentRoot /directorioraiz/otrodominio
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /directorioraiz/otrodominio>
        Options -Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
</VirtualHost>

Una vez creado el fichero podremos reiniciar el apache y probar si funciona correctamente, pero antes, crea una página llamada index.html en el directorio raíz de tu nueva web y finalmente reinicia el servidor web con el comando:

service apache2 restart

Si hemos escrito mal algo en el fichero del host virtual, nos lo debería indicar en la consola al arrancar apache2.