Cómo instalar el servidor web Apache en Debian 10

Introducción

Índice
  1. Introducción
  • Prerrequisitos
  • Paso 1: Instalación de Apache
  • Paso 2: Ajuste del firewall
  • Paso 3: Comprobación del servidor web
  • Paso 4: Gestión del proceso Apache
  • Paso 5: Configuración de hosts virtuales (recomendado)
  • Paso 6: Familiarizarse con los archivos y directorios importantes de Apache
    1. Contenido
    2. Configuración del servidor
    3. Registros del servidor
  • Conclusión
  • El servidor HTTP Apache es el servidor web más utilizado en el mundo. Ofrece muchas funciones potentes, entre ellas módulos que se pueden cargar de forma dinámica, un sólido soporte multimedia y una amplia integración con otros programas populares.

    En esta guía, explicaremos cómo instalar un servidor web Apache en su servidor Debian 10.

    Prerrequisitos

    Antes de comenzar con esta guía, debe tener un usuario normal, no root, con privilegios sudo configurados en su servidor. Además, deberá habilitar un firewall básico para bloquear los puertos no esenciales. Puede aprender a configurar una cuenta de usuario normal y configurar un firewall para su servidor siguiendo nuestra guía de configuración inicial del servidor para Debian 10.

    Cuando tenga una cuenta disponible, inicie sesión como usuario no root para comenzar.

    Paso 1: Instalación de Apache

    Apache está disponible dentro de los repositorios de software predeterminados de Debian, lo que hace posible instalarlo utilizando herramientas de gestión de paquetes convencionales.

    Comencemos actualizando el índice de paquetes locales para reflejar los últimos cambios ascendentes:

    1. sudo apt update

    Luego, instala el apache2paquete:

    1. sudo apt install apache2

    Después de confirmar la instalación, aptse instalará Apache y todas las dependencias necesarias.

    Paso 2: Ajuste del firewall

    Antes de probar Apache, es necesario modificar la configuración del firewall para permitir el acceso externo a los puertos web predeterminados. Suponiendo que haya seguido las instrucciones de los requisitos previos, debería tener un firewall UFW configurado para restringir el acceso a su servidor.

    Durante la instalación, Apache se registra en UFW para proporcionar algunos perfiles de aplicación que pueden usarse para habilitar o deshabilitar el acceso a Apache a través del firewall.

    Enumere los ufwperfiles de aplicación escribiendo:

    1. sudo ufw app list

    Verá una lista de los perfiles de la aplicación:

    OutputAvailable applications:  AIM  Bonjour  CIFS. . .  WWW WWW Cache WWW Full WWW Secure. . . 

    Los perfiles de Apache comienzan con WWW:

    • WWW : Este perfil abre únicamente el puerto 80 (tráfico web normal, sin cifrar)
    • Caché WWW : este perfil abre solo el puerto 8080 (a veces se usa para almacenamiento en caché y servidores proxy web)
    • WWW Full : este perfil abre tanto el puerto 80 (tráfico web normal, sin cifrar) como el puerto 443 (tráfico cifrado TLS/SSL)
    • WWW Secure : este perfil solo abre el puerto 443 (tráfico cifrado TLS/SSL)

    Se recomienda que habilite el perfil más restrictivo que aún permita el tráfico que ha configurado. Dado que aún no hemos configurado SSL para nuestro servidor en esta guía, solo necesitaremos permitir el tráfico en el puerto 80:

    1. sudo ufw allow 'WWW'

    Puede verificar el cambio escribiendo:

    1. sudo ufw status

    Debería ver el tráfico HTTP permitido en la salida mostrada:

    OutputStatus: activeTo                         Action      From--                         ------      ----OpenSSH                    ALLOW       AnywhereWWW                        ALLOW       AnywhereOpenSSH (v6)               ALLOW       Anywhere (v6)WWW (v6)                   ALLOW       Anywhere (v6)

    Como puedes ver, el perfil se ha activado para permitir el acceso al servidor web.

    Paso 3: Comprobación del servidor web

    Al finalizar el proceso de instalación, Debian 10 inicia Apache. El servidor web ya debería estar en funcionamiento.

    Verifique el systemdsistema de inicio para asegurarse de que el servicio se esté ejecutando escribiendo:

    1. sudo systemctl status apache2
    Output● apache2.service - The Apache HTTP Server   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)   Active: active (running) since Fri 2019-07-19 15:33:01 UTC; 4min 13s ago     Docs: https://httpd.apache.org/docs/2.4/. . .Jul 19 15:33:01 debssh systemd[1]: Starting The Apache HTTP Server...Jul 19 15:33:01 debssh apachectl[2791]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globalJul 19 15:33:01 debssh systemd[1]: Started The Apache HTTP Server.

    Como puede ver en este resultado, el servicio parece haberse iniciado correctamente. Sin embargo, la mejor forma de comprobarlo es solicitar una página a Apache.

    Puede acceder a la página de inicio predeterminada de Apache para confirmar que el software se está ejecutando correctamente a través de su dirección IP. Si no conoce la dirección IP de su servidor, puede obtenerla de diferentes maneras desde la línea de comandos.

    Intente escribir esto en el símbolo del sistema de su servidor:

    1. hostname -I

    Obtendrás algunas direcciones separadas por espacios. Puedes probar cada una en tu navegador web para ver si funcionan.

    Una alternativa es utilizar la curlherramienta, que debería proporcionarle su dirección IP pública tal como se ve desde otra ubicación en Internet.

    Primero, instale curlusando apt:

    1. sudo apt install curl

    Luego, use curlpara recuperar icanhazip.com usando IPv4:

    1. curl -4 icanhazip.com

    Cuando tenga la dirección IP de su servidor, ingrésela en la barra de direcciones de su navegador:

    http://your_server_ip

    Debería ver la página web predeterminada de Apache Debian 10:

    Esta página indica que Apache está funcionando correctamente. También incluye información básica sobre archivos y ubicaciones de directorios importantes de Apache.

    Paso 4: Gestión del proceso Apache

    Ahora que tiene su servidor web en funcionamiento, repasemos algunos comandos de administración básicos.

    Para detener su servidor web, escriba:

    1. sudo systemctl stop apache2

    Para iniciar el servidor web cuando esté detenido, escriba:

    1. sudo systemctl start apache2

    Para detener y volver a iniciar el servicio, escriba:

    1. sudo systemctl restart apache2

    Si simplemente está realizando cambios de configuración, Apache puede volver a cargarse sin interrumpir las conexiones. Para ello, utilice este comando:

    1. sudo systemctl reload apache2

    De forma predeterminada, Apache está configurado para iniciarse automáticamente cuando se inicia el servidor. Si no es esto lo que desea, deshabilite este comportamiento escribiendo lo siguiente:

    1. sudo systemctl disable apache2

    Para volver a habilitar el servicio para que se inicie durante el arranque, escriba:

    1. sudo systemctl enable apache2

    Apache ahora debería iniciarse automáticamente cuando el servidor se reinicie nuevamente.

    Paso 5: Configuración de hosts virtuales (recomendado)

    Al utilizar el servidor web Apache, puede utilizar hosts virtuales (similares a los bloques de servidor en Nginx) para encapsular los detalles de configuración y alojar más de un dominio desde un solo servidor. En los siguientes comandos, reemplace your_domain con su propio nombre de dominio . Para obtener más información sobre cómo configurar un nombre de dominio con DigitalOcean, consulte nuestra Introducción a DigitalOcean DNS.

    Apache en Debian 10 tiene un bloque de servidor habilitado de manera predeterminada que está configurado para servir documentos desde el /var/www/htmldirectorio. Si bien esto funciona bien para un solo sitio, puede volverse complicado si está alojando varios sitios. En lugar de modificar /var/www/html, creemos una estructura de directorio dentro /var/wwwde nuestro your_domainsitio, dejando /var/www/htmlen su lugar como el directorio predeterminado que se servirá si una solicitud de cliente no coincide con ningún otro sitio.

    Cree el directorio de your_domainla siguiente manera, utilizando la -pbandera para crear cualquier directorio padre necesario:

    1. sudo mkdir -p /var/www/your_domain

    A continuación, asigne la propiedad del directorio con la $USERvariable ambiental:

    1. sudo chown -R $USER:$USER /var/www/your_domain

    Los permisos de tus raíces web deberían ser correctos si no has modificado su unmaskvalor, pero puedes asegurarte escribiendo:

    1. sudo chmod -R 755 /var/www/your_domain

    A continuación, crea una index.htmlpágina de muestra utilizando nanotu editor favorito:

    1. nano /var/www/your_domain/index.html

    Dentro, agregue el siguiente HTML de muestra:

    /var/www/tu_dominio/index.html

    html    head        titleWelcome to your_domain!/title    /head    body        h1Success!  The your_domain virtual host is working!/h1    /body/html

    Guarde y cierre el archivo cuando haya terminado.

    Para que Apache pueda ofrecer este contenido, es necesario crear un archivo de host virtual con las directivas correctas. En lugar de modificar el archivo de configuración predeterminado ubicado /etc/apache2/sites-available/000-default.confdirectamente en , creemos uno nuevo en :/etc/apache2/sites-available/your_domain.conf

    1. sudo nano /etc/apache2/sites-available/your_domain.conf

    Pegue el siguiente bloque de configuración, que es similar al predeterminado, pero actualizado para nuestro nuevo directorio y nombre de dominio:

    /etc/apache2/sitios-disponibles/su_dominio.conf

    VirtualHost *:80    ServerAdmin admin@your_email_domain    ServerName your_domain    ServerAlias www.your_domain    DocumentRoot /var/www/your_domain    ErrorLog ${APACHE_LOG_DIR}/error.log    CustomLog ${APACHE_LOG_DIR}/access.log combined/VirtualHost

    Tenga en cuenta que hemos actualizado el DocumentRootdirectorio nuevo y ServerAdminun correo electrónico al que your_domainpuede acceder el administrador del sitio. También hemos agregado dos directivas: ServerName, que establece el dominio base que debe coincidir con esta definición de host virtual, y ServerAlias, que define otros nombres que deben coincidir como si fueran el nombre base.

    Guarde y cierre el archivo cuando haya terminado.

    Habilitemos el archivo con la a2ensiteherramienta:

    1. sudo a2ensite your_domain.conf

    Deshabilitar el sitio predeterminado definido en 000-default.conf:

    1. sudo a2dissite 000-default.conf

    A continuación, probemos si hay errores de configuración:

    1. sudo apache2ctl configtest

    Deberías ver el siguiente resultado:

    OutputAH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this messageSyntax OK

    Reinicie Apache para implementar los cambios:

    1. sudo systemctl restart apache2

    Apache debería estar ahora dando servicio a tu nombre de dominio. Puedes comprobarlo navegando a , donde deberías ver algo como esto:http://your_domain

    Paso 6: Familiarizarse con los archivos y directorios importantes de Apache

    Ahora que sabe cómo administrar el servicio Apache, debería tomarse unos minutos para familiarizarse con algunos directorios y archivos importantes.

    Contenido

    • /var/www/html:El contenido web real, que por defecto solo consta de la página predeterminada de Apache que viste antes, se entrega desde el /var/www/htmldirectorio. Esto se puede cambiar modificando los archivos de configuración de Apache.

    Configuración del servidor

    • /etc/apache2:El directorio de configuración de Apache. Todos los archivos de configuración de Apache residen aquí.
    • /etc/apache2/apache2.conf: El archivo de configuración principal de Apache. Puede modificarse para realizar cambios en la configuración global de Apache. Este archivo es responsable de cargar muchos de los otros archivos en el directorio de configuración.
    • /etc/apache2/ports.conf:Este archivo especifica los puertos en los que Apache escuchará. De manera predeterminada, Apache escucha en el puerto 80 y, además, escucha en el puerto 443 cuando se habilita un módulo que proporciona capacidades SSL.
    • /etc/apache2/sites-available/: El directorio donde se pueden almacenar los hosts virtuales por sitio. Apache no utilizará los archivos de configuración que se encuentran en este directorio a menos que estén vinculados al sites-enableddirectorio. Normalmente, toda la configuración del bloque del servidor se realiza en este directorio y luego se habilita mediante el vínculo al otro directorio con el a2ensitecomando.
    • /etc/apache2/sites-enabled/: El directorio donde se almacenan los hosts virtuales habilitados por sitio. Normalmente, se crean mediante vínculos a archivos de configuración que se encuentran en el sites-availabledirectorio con el nombre a2ensite. Apache lee los archivos de configuración y los vínculos que se encuentran en este directorio cuando se inicia o se recarga para compilar una configuración completa.
    • /etc/apache2/conf-available/, /etc/apache2/conf-enabled/: Estos directorios tienen la misma relación que los directorios sites-availabley sites-enabled, pero se utilizan para almacenar fragmentos de configuración que no pertenecen a un host virtual. Los archivos del conf-availabledirectorio se pueden habilitar con el a2enconfcomando y deshabilitar con el a2disconfcomando .
    • /etc/apache2/mods-available/, /etc/apache2/mods-enabled/: Estos directorios contienen los módulos disponibles y habilitados, respectivamente. Los archivos que terminan en .loadcontienen fragmentos para cargar módulos específicos, mientras que los archivos que terminan en .confcontienen la configuración para esos módulos. Los módulos se pueden habilitar y deshabilitar utilizando el comando a2enmodand a2dismod.

    Registros del servidor

    • /var/log/apache2/access.log:De forma predeterminada, cada solicitud a su servidor web se registra en este archivo de registro, a menos que Apache esté configurado para hacer lo contrario.
    • /var/log/apache2/error.log:De manera predeterminada, todos los errores se registran en este archivo. La LogLeveldirectiva de la configuración de Apache especifica cuánto detalle contendrán los registros de errores.

    Conclusión

    Ahora que tiene su servidor web instalado, tiene muchas opciones para el tipo de contenido que puede servir y las tecnologías que puede utilizar para crear una experiencia más rica.

    Si desea desarrollar una pila de aplicaciones más completa, puede consultar este artículo sobre cómo configurar una pila LAMP en Debian 10.

    SUSCRÍBETE A NUESTRO BOLETÍN 
    No te pierdas de nuestro contenido ni de ninguna de nuestras guías para que puedas avanzar en los juegos que más te gustan.

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Subir

    Este sitio web utiliza cookies para mejorar tu experiencia mientras navegas por él. Este sitio web utiliza cookies para mejorar tu experiencia de usuario. Al continuar navegando, aceptas su uso. Mas informacion