Cómo instalar el servidor web Apache en Ubuntu 18.04

Introducción

El servidor Apache HTTP es el servidor web más utilizado en el mundo. Proporciona muchas características potentes que incluyen módulos dinámicamente cargables, soporte robusto de medios y una amplia integración con otros softwares populares.

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

Requisitos previos

Antes de comenzar con esta guía, debe tener un usuario común, no root, con privilegios sudo configurados en su servidor. Además, deberá habilitar un servidor de seguridad básico para bloquear los puertos no esenciales.  Esta es la instalación por defecto que trae Ubuntu 18.04.

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

Paso 1 – Instalando Apache

Apache está disponible dentro de los repositorios de software predeterminados de Ubuntu, lo que hace posible su instalación utilizando las herramientas de administración de paquetes convencionales.

Comencemos actualizando la base de repositorios de paquetes en nuestro equipo para reflejar los últimos cambios en los paquetes:

Luego, instale el paquete apache2:

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

Paso 2 – Ajuste del cortafuegos

Antes de probar Apache, es necesario modificar la configuración del firewall para permitir el acceso externo a los puertos web predeterminados. Suponiendo que siguió las instrucciones en los requisitos previos, debe tener el firewall  ufw  configurado para restringir el acceso a su servidor.

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

Enumere los perfiles de la aplicación ufw escribiendo:

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

Como puede ver, hay tres perfiles disponibles para Apache:

  • Apache: este perfil abre solo el puerto 80 (tráfico web normal no encriptado)
  • Apache Full: este perfil abre tanto el puerto 80 (tráfico web normal no encriptado) como el puerto 443 (tráfico encriptado TLS/SSL)
  • Apache Secure: este perfil abre solo el puerto 443 (tráfico encriptado TLS / SSL)

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

Puede verificar el cambio escribiendo:

Debería ver el tráfico HTTP está permitido en la salida del comando:

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

 

Paso 3 – Verificando tu servidor web

Al final del proceso de instalación, Ubuntu 18.04 inicia Apache. El servidor web ya debería estar en funcionamiento.

Consulte con el sistema de inicio  systemd para asegurarse de que el servicio se está ejecutando escribiendo:

Como puede ver en esta salida, el servicio parece haber comenzado con éxito. Sin embargo, la mejor manera de probar esto es solicitar una página de Apache.

Puede acceder a la página de inicio de Apache predeterminada 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 comando.

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

Recibirás algunas direcciones separadas por espacios. Puede probar cada uno en su navegador web para ver si funcionan.

Una alternativa es tipear esto, que debería darle su dirección IP pública como se ve desde otra ubicación en Internet:

Cuando tengas la dirección IP de tu servidor, ingrésala en la barra de direcciones de tu navegador:

Debería ver la página web predeterminada Apache de Ubuntu 18.04:

Apache Página por defecto Ubuntu

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

Paso 4 – Administrar el proceso de Apache

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

Para detener su servidor web, escriba:

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

Para detener y luego volver a iniciar el servicio, escriba:

Si simplemente realiza cambios de configuración, Apache a menudo puede volver a cargar sin romper las conexiones existentes. Para hacer esto, usa este comando:

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

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

Apache ahora debería comenzar automáticamente cuando el servidor arranca nuevamente.

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

Al usar el servidor web Apache, puede usar hosts virtuales (similares a los bloques de servidor en Nginx) para encapsular detalles de configuración y alojar más de un dominio desde un único servidor.

Configuraremos un dominio llamado ejemplo.com, pero debe reemplazarlo con su propio nombre de dominio.

Apache en Ubuntu 18.04 tiene un bloque de servidores habilitado por defecto que está configurado para servir documentos del directorio /var/www/html. Si bien esto funciona bien para un solo sitio, puede resultar difícil de manejar si aloja varios sitios. En lugar de modificar /var/www/html, creemos una estructura de directorio dentro de /var/www para nuestro sitio ejemplo.com, dejando /var/www/html en su lugar como el directorio predeterminado para ser servido si la solicitud de un cliente no lo hace emparejar con los otros sitios.

Cree el directorio para ejemplo.com de la siguiente manera, usando el indicador -p para crear cualquier directorio padre necesario:

A continuación, asigne la propiedad del directorio con la variable de entorno $USER:

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

Luego, crea una página de muestra index.html usando nano o tu editor favorito:

En el interior, agregue el siguiente ejemplo de HTML:

Guarde y cierre el archivo cuando haya terminado.

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

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

Tenga en cuenta que hemos actualizado DocumentRoot a nuestro nuevo directorio y ServerAdmin a un correo electrónico al que el administrador del sitio ejemplo.com puede acceder. También hemos agregado dos directivas: ServerName, que establece el dominio base que debe coincidir para 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.

Vamos a habilitar el archivo con la herramienta a2ensite:

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

A continuación, probemos los errores de configuración:

Debería ver el siguiente resultado:

Reinicie Apache para implementar sus cambios:

Apache ahora debería estar publicando su nombre de dominio. Puede probar esto navegando a http://ejemplo.com, donde debería ver algo como esto:

Paso 6: familiarizarse con archivos y directorios importantes de Apache

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

/var/www/html: el contenido web real, que de forma predeterminada solo consiste en la página Apache predeterminada que vio anteriormente. Esto se puede cambiar alterando 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. Esto se puede modificar 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 escuchará Apache. De forma predeterminada, Apache escucha en el puerto 80 y escucha adicionalmente en el puerto 443 cuando un módulo que proporciona capacidades SSL está habilitado.

/etc/apache2/sites-available/: el directorio donde se pueden almacenar los hosts virtuales por sitio. Apache no usará los archivos de configuración que se encuentran en este directorio a menos que estén vinculados al directorio habilitado por sitios. Normalmente, toda la configuración del bloque de servidor se realiza en este directorio y luego se habilita al vincular al otro directorio con el comando a2ensite.

/etc/apache2/sites-enabled/: el directorio donde están almacenados los hosts virtuales por sitio. Por lo general, estos se crean vinculando los archivos de configuración que se encuentran en el directorio de sitios disponibles con a2ensite. Apache lee los archivos de configuración y los enlaces encontrados 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 de sitios disponibles y de sitios habilitados, pero se usan para almacenar fragmentos de configuración que no pertenecen a una anfitrión virtual. Los archivos en el directorio conf-available se pueden habilitar con el comando a2enconf y deshabilitados con el comando a2disconf.

/etc/apache2/mods-available/, /etc/apache2/mods-enabled/: Estos directorios contienen los módulos disponibles y habilitados, respectivamente. Los archivos que terminan en .load contienen fragmentos para cargar módulos específicos, mientras que los archivos que terminan en .conf contienen la configuración para esos módulos. Los módulos se pueden habilitar y deshabilitar con los comandos a2enmod y a2dismod.

Registros del servidor

/var/log/apache2/access.log: de manera 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 directiva LogLevel en la configuración de Apache especifica la cantidad de detalles que contendrán los registros de errores.

Conclusión

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

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.