como-configurar-un-virtual-host-en-apache-con-raspberry-pi

Cómo configurar un Virtual Host en Apache con Raspberry Pi

Continuamos con las entradas de Raspberry Pi viendo como configurar un Virtual Host en Apache, una mejora conveniente para realizar en nuestro servidor.

En la entrada anterior vimos cómo configurar un servidor Apache. En esta configuración sencilla empleábamos una única dirección IP o dominio, que servía ficheros de un único directorio.

Un Virtual Host es un mecanismo que permite que una misma máquina esté asociada con distintos dominios o direcciones IP. De forma resumida, de esta forma Apache distingue el dominio o la IP solicitada, y redirecciona la petición para servir los ficheros desde distintos directorios.

Aunque permitir funcionar con distintos dominios sea su utilidad principal, en cualquier caso, configurar Virtual Host es una medida que favorece la mantenibilidad del sistema. Por tanto, es conveniente configurarlo aunque en un primer momento únicamente tengamos un dominio o dirección IP.

Crear directorio con los ficheros a servir

Crear un directorio para el contenido

En primer lugar, creamos un directorio donde almacenaremos los ficheros a servir, por ejemplo ‘/var/www/example.com/html’

sudo mkdir -p /var/www/example.com/html

A continuación, tenemos que conceder los permisos apropiados a esta nueva carpeta.

Conceder permisos

sudo chown -R $USER:$USER /var/www/example.com/html
sudo chmod -R 755 /var/www

Crear un fichero de prueba

A continuación, crearemos un fichero de ejemplo ‘index.html’ en el directorio que acabamos de crear

nano /var/www/example.com/html/index.html

Con el contenido,

<html>
    <head>
        <title>¡Hola mundo!</title>
    </head>
    <body>
        <h1>Esta es tu pagina web. Enhorabuena!</h1>
    </body>
</html>

Configurar el Virtual Host

Ahora, copiamos la configuración por defecto en nuevo fichero de configuración,

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.com.conf

Y editamos su contenido

sudo nano /etc/apache2/sites-available/example.com.conf

De forma que tenga la siguiente forma

<VirtualHost *:80>
    ServerAdmin admin@example.com
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Habilitar/deshabilitar Virtual Host

Ahora, para activar nuestro Virtual Host usamos el comando ‘a2ensite’

sudo a2ensite example.com.conf

Si por el contrario queremos deshabilitar, usamos el comando ‘a2dissite’. Por ejemplo, para deshabilitar el servidor por defecto usamos

sudo a2dissite 000-default.conf

Reiniciar Apache

Finalmente, reinicamos Apache para que refleje los cambios realizados,

sudo systemctl restart apache2

¡Así de sencillo! Por supuesto, podríamos repetir el proceso con tantos dominios como fuera necesario. Y, cómo decíamos, es una medida que conveniente que deberíamos realizar en cualquier implantación de Apache.