Cómo instalar Apache en Debian 10 Buster

Cómo instalar Apache en Debian 10 Buster

En esta entrada mostraremos cómo instalar Apache en Debian 10 Buster paso a paso, el servidor web más popular que sigue siendo una referencia a día de hoy. Al final de esta guía dispondrás de la última versión estable (2.4.38 en el momento de escribir este post) lista para servir tus páginas y aplicaciones web, incluyendo servidores virtuales y seguridad SSL.

Antes de instalar Apache en Debian 10 Buster

Si vas a instalar Apache en Debian 10 siguiendo esta guía debes cumplir estos mínimos requisitos:

  • Un sistema Linux Debian 10 Buster actualizado.
  • Acceso por consola con un usuario con permisos de sudo o como root.
  • Conexión a Internet.

Como seguro que cumples estos requerimientos, ya puedes ir abriendo tu terminal de línea de comandos favorita para empezar a lanzar comandos.

Cómo instalar Apache en Debian 10

Para instalar Apache en Debian 10 utilizaremos los paquetes que incluye la propia distribución en sus repositorios oficiales.

En primer lugar, un paso opcional pero siempre recomendable, actualizamos nuestro sistema Debian:

~$ sudo apt update && sudo apt -y upgrade

Hecho esto ya podemos instalar Apache. El paquete que necesitamos es apache2, así que lo instalamos mediante apt:

~$ sudo apt -y install apache2

En unos instantes se descargará el paquete principal junto con todas sus dependencias. Una vez instalado todo el software, el nuevo servicio apache2 queda activado y en ejecución. Esto lo podemos comprobar mediante el comando systemctl:

~$ systemctl status apache2
● apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset:
   Active: active (running) since Thu 2019-07-10 17:05:52 CEST; 1min 55s ago
     Docs: https://httpd.apache.org/docs/2.4/
 Main PID: 1216 (apache2)
    Tasks: 55 (limit: 1150)
   Memory: 14.9M
   CGroup: /system.slice/apache2.service
           ├─1216 /usr/sbin/apache2 -k start
           ├─1218 /usr/sbin/apache2 -k start
           └─1219 /usr/sbin/apache2 -k start

Pero seguramente lo quieras comprobar a través de un navegador, visitando la página web por defecto de Apache en Debian 10. Introduce como URL la dirección IP, el nombre de máquina o el dominio del servidor y deberías obtener un resultado como este:

instalar apache en debian 10

Justo lo que esperábamos, la tradicional página por defecto de Apache 2.4 ahora en Debian 10.

Podemos comprobar la versión exacta de Apache que acabamos de instalar con el parámetro -v del comando apache2:

~$ sudo apache2 -v
Server version: Apache/2.4.38 (Debian)
Server built:   2019-04-07T18:15:40

Cómo configurar Apache en Debian 10

Para configurar Apache en Debian 10 Buster hay que tener en cuenta que los archivos de configuración se encuentran bajo la ruta /etc/apache2/, siendo el archivo principal de configuración /etc/apache2/apache2.conf. Dentro de esta carpeta encontramos además directorios para archivos de configuraciones adicionales, módulos y servidores virtuales. Los directorios terminados en -available/ son los que contienen los archivos de configuración, mientras que los que terminan en -enabled/ contienen enlaces simbólicos a aquellos archivos de configuración que queramos que Apache cargue. Es decir, un archivo en una carpeta available que no esté enlazado en la carpeta enabled correspondiente no será cargado por Apache, sólo se cargará si existe su correspondiente enlace simbólico en la carpeta enabled.

Cada vez que hagamos cambios en la configuración de Apache estos no causarán efecto hasta que se recargue la configuración del servicio, lo que haremos con systemctl:

~$ sudo systemctl reload apache2

Servidores virtuales de Apache en Debian 10

Para usar servidores virtuales de Apache en Debian 10 crearemos un archivo de configuración por cada servidor virtual que necesitemos. Como vimos antes, tenemos la carpeta /etc/apache2/sites-available/ para ubicar estos archivos de configuración y la carpeta /etc/apache2/sites-enabled/ para activar los servidores virtuales que queramos mediante enlaces simbólicos a sus archivos de configuración.

Servidor virtual por defecto

De hecho, la página web por defecto del sistema (que hemos visto al hacer la prueba de funcionamiento) es de por sí un servidor virtual al que responden todas las peticiones que lleguen al servidor web y no tengan otro servidor virtual específico que las atienda. El dominio configurado durante la instalación de Debian 10 también es atendido por el servidor por defecto.

El archivo de configuración del servidor virtual por defecto es /etc/apache2/sites-available/000-default.conf.

Cómo crear un nuevo servidor virtual de Apache en Debian 10

Vamos a crear un servidor virtual nuevo para un subdominio del dominio por defecto (el proceso sería idéntico para un dominio nuevo). En este caso configuraremos el servidor virtual que responderá al subdominio blog.debian10.local.

Preparando el contenido web del servidor virtual

En primer lugar crearemos el contenido del sitio web, creando la carpeta de archivos y algún archivo de prueba. Un buen lugar para este contenido podría ser bajo la ruta /var/www/ que está configurada por defecto para poder ser utilizada por el servidor web.

~$ sudo mkdir /var/www/blog.debian10.local
~$ sudo chown $USER:$USER /var/www/blog.debian10.local/

Además de crear la carpeta, opcionalmente hemos transferido su propiedad a nuestro usuario, para poder trabajar en ella sin necesidad del comando sudo. Ahora creamos el archivo HTML que será mostrado por defecto:

~$ nano /var/www/blog.debian10.local/index.html

Podemos escribir cualquier contenido, un simple mensaje de bienvenida bastará:

<h1>Bienvenidos a blog.debian10.local</h1>

Cómo configurar el nuevo servidor virtual

Crearemos su propio archivo de configuración:

~$ sudo nano /etc/apache2/sites-available/blog.debian10.local.conf

Un ejemplo de configuración mínima podría ser el siguiente:

<VirtualHost *:80>
        ServerName blog.debian10.local

        DocumentRoot /var/www/blog.debian10.local

        <Directory /var/www/blog.debian10.local>
                Options -Indexes
                AllowOverride all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/blog.debian10.local-error.log
        CustomLog ${APACHE_LOG_DIR}/blog.debian10.local-access.log combined
</VirtualHost>

La configuración consta de un bloque VirtualHost en el que se indica qué adaptadores de red aceptarán conexiones (el * indica todos) y 80 hace referencia al puerto de escucha, el puerto estándar para el protocolo HTTP.

La directiva ServerName indica el dominio al que responderá el servidor virtual.

Por su parte, DocumentRoot indica cuál es la carpeta de archivos web, donde reside nuestra página o aplicación.

El bloque Directory permite configurar ubicaciones del servidor web. En este ejemplo la directiva Options desactiva la posibilidad de mostrar el contenido (indexar) de las carpetas web si no existe un archivo índice (como index.html, index.htm, index.php, etc.) Además se permite cambiar la configuración del servidor al vuelo mediante archivos .htaccess gracias a la directiva AllowOverride.

Las directivas ErrorLog y CustomLog establecen cuáles serán los archivos de registro de errores y accesos para este servidor web. La expresión ${APACHE_LOG_DIR} se sustituye por el directorio de archivos de registro o logs configurado en Apache (/var/log/apache/ por defecto), pero se pueden especificar otras ubicaciones siempre que el servidor web pueda escribir en ellas.

Una vez guardados los cambios tendremos que activar el nuevo servidor virtual. Podemos crear el enlace simbólico necesario manualmente:

~$ sudo ln -s /etc/apache2/sites-available/blog.debian10.local.conf /etc/apache2/sites-enabled/

Pero Debian nos ofrece una herramienta para hacer esto mismo de forma más cómoda:

~$ sudo a2ensite blog.debian10.local.conf

El resultado será el mismo, aunque la segunda opción nos recuerda que los cambios no entrarán en vigor hasta recargar la configuración del servicio.

En cualquier caso, una vez recargada la nueva configuración, podemos visitar la web del servidor virtual a través de su dominio mediante el navegador:

como crear servidores virtuales virtual host de apache en debian 10

Justo como queríamos.

Configurar certificados SSL y protocolo SSL para Apache en Debian 10

Si quieres utilizar seguridad SSL en tu servidor Apache, es decir, realizar las conexiones a través de protocolo seguro HTTPS en primer lugar hay que activar el módulo SSL de Apache, que no viene activado por defecto.

~$ sudo a2enmod ssl
Considering dependency setenvif for ssl:
Module setenvif already enabled
Considering dependency mime for ssl:
Module mime already enabled
Considering dependency socache_shmcb for ssl:
Enabling module socache_shmcb.
Enabling module ssl.
See /usr/share/doc/apache2/README.Debian.gz on how to configure SSL and create self-signed certificates.
To activate the new configuration, you need to run:
  systemctl restart apache2

Reiniciamos Apache, tal y como indica el mensaje que acabamos de obtener. Apache ya está listo para manejar el cifrado SSL a través de conexiones HTTPS.

Ahora hay que configurar el certificado SSL para cada servidor virtual. Esto es tan fácil como añadir otro bloque VirtualHost en el mismo archivo de configuración del servidor virtual que estés configurando.

Siguiendo con el ejemplo anterior, editaríamos el archivo de configuración y añadiríamos al final este bloque:

<VirtualHost *:443>
        ServerName blog.debian10.local
        DocumentRoot /var/www/blog.debian10.local

        <Directory /var/www/blog.debian10.local>
                Options -Indexes
                AllowOverride all
        </Directory>

        SSLEngine On

        SSLCertificateFile /etc/letsencrypt/live/blog.debian10.local/cert.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/blog.debian10.local/privkey.pem
        SSLCertificateChainFile /etc/letsencrypt/live/blog.debian10.local/chain.pem
        ErrorLog ${APACHE_LOG_DIR}/blog.debian10.local-error.log
        CustomLog ${APACHE_LOG_DIR}/blog.debian10.local-access.log combined
</VirtualHost>

En el nuevo bloque VirtualHost la primera diferencia que econtramos es que especificamos el puerto de escucha con el valor 443 (en lugar de 80), que es el puerto estándar para el protocolo HTTPS.

Además añadimos una directiva SSLEngine On para activar el módulo SSL en esta configuración, y a continuación indicamos la ruta de los certificados para el dominio asociado al servidor virtual.

Aunque en este ejemplo no se ha hecho, se puede ofrecer contenido diferente para la versión cifrada, y también archivos de registro de eventos o logs diferentes.

En cualquier caso, una vez guardados los cambios en la configuración hay que recargar la configuración de Apache.

A partir de este momento el servidor web ya puede ofrecer páginas mediante direcciones http:// y https://.

 

Conclusión

Ahora que sabes cómo instalar Apache 2.4 en Debian 10 ya estás listo para que tu máquina sirva páginas y aplicaciones web a tu red local o a tus usuarios en Internet, en caso de estar trabajando con un VPS Debian.

En caso de preguntas, dudas, notificaciones de errores, sugerencias o mejoras sobre este artículo puedes dejarme un comentario.

¡Apoya este sitio!

Si te ha resultado interesante esta guía sobre Apache en Debian 10 y quieres agradecérmelo, ¡nada impiede que me invites a un café!

Valora esta entrada

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (1 votos, promedio: 5,00 de 5)
Cargando…

Deja un comentario

Cerrar menú

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información

ACEPTAR
Aviso de cookies