Servidor web Apache, instalación en Ubuntu 20.04
En el siguiente artículo vamos a ver cómo podemos instalar un servidor web Apache en Ubuntu 20.04. El servidor HTTP Apache es un servidor web que ofrece muchas y potentes funciones. Entre ellas se incluyen módulos que cargan de forma dinámica, soporte de medios robusto y una amplia integración con otro software popular.
Antes de comenzar la instalación, debemos disponer de un usuario regular con privilegios de sudo configurado en el equipo. Además, debemos habilitar un firewall para bloquear puertos no esenciales. Cuando dispongamos de todo esto, ya podemos iniciar sesión como este usuario no root para comenzar.
Instalar Apache
Apache está disponible en los repositorios de software predeterminados de Ubuntu. Por este motivo vamos a empezar actualizando el índice de paquetes local para disponer de los últimos cambios:
sudo apt update
Ahora ya podemos instalar el paquete apache2:
sudo apt install apache2
Finalizada la instalación podremos comprobar que versión de Apache instalamos escribiendo en la misma terminal:
sudo apache2ctl -v
Ajustes del cortafuegos
Antes de probar Apache, es necesario modificar la configuración del firewall para permitir el acceso externo a los puertos web predeterminados. Esto lo haremos suponiendo que tengamos configurado un firewall como UFW configurado para restringir el acceso al servidor.
Durante la instalación, Apache se registra con UFW y proporciona algunos perfiles de aplicación que se pueden usar para habilitar o deshabilitar el acceso a Apache a través del firewall.
Vamos a poder enumerar estos perfiles escribiendo:
sudo ufw app list
Como indica la salida, hay tres perfiles disponibles para Apache:
- Apache → Este perfil solo abre el puerto 80 (tráfico web normal sin cifrar)
- Apache Full → Abre tanto el puerto 80 (tráfico web normal sin cifrar) como el puerto 443 (tráfico cifrado TLS / SSL)
- Apache Secure → Este perfil solo abre el puerto 443 (tráfico cifrado TLS / SSL)
Para este ejemplo, como todavía no hemos configurado SSL, solo vamos a permitir el tráfico en el puerto 80:
sudo ufw allow 'Apache'
Podremos verificar el cambio escribiendo:
sudo ufw status
Comprobar el servidor web
Al final del proceso de instalación, Ubuntu 20.04 inicia Apache, por lo que el servidor web ya debería estar en funcionamiento. Esto lo podremos verificar escribiendo:
sudo systemctl status apache2
El anterior comando debería indicar que el servicio se ha iniciado con éxito. Sin embargo, la mejor manera de probar esto es solicitar una página de Apache. Podremos acceder a ella a través de la dirección IP para confirmar que el software se ejecuta correctamente. Si no conoces la dirección IP, se puede obtener escribiendo en la terminal (Ctrl+Alt+T):
hostname -I
Este comando nos mostrará algunas direcciones locales separadas por espacios. Podemos probar cada una en el navegador web para determinar si funcionan. Estas nos deben permitir ver la página web predeterminada de Ubuntu 20.04 Apache:
Esta página también incluye información básica sobre archivos Apache importantes y ubicaciones de directorios.
Gestionar Apache
Ahora que ya tenemos el servidor web en funcionamiento, veamos algunos comandos básicos de administración con systemctl.
Para detener el servidor web:
sudo systemctl stop apache2
Iniciar el servidor web cuando está detenido:
sudo systemctl start apache2
Para detener e iniciar el servicio:
sudo systemctl restart apache2
Si simplemente estamos haciendo cambios en la configuración, Apache se puede recargar sin perder las conexiones escribiendo:
sudo systemctl reload apache2
De forma predeterminada, Apache está configurado para iniciarse automáticamente con el equipo. Esto lo podemos desactivar escribiendo:
sudo systemctl disable apache2
Para volver a habilitar que el servicio se inicie en el arranque:
sudo systemctl enable apache2
Archivos importantes y directorios de Apache
Contenido
- /var/www/html → Incluye el contenido web. Esto se puede cambiar en los archivos de configuración de Apache.
Configuración del servidor
- /etc/apache2 → Todos los archivos de configuración de Apache residen aquí.
- /etc/apache2/apache2.conf → Se trata del archivo de configuración principal de Apache.
- /etc/apache2/ports.conf → Este archivo especifica los puertos en los que Apache escuchará.
- /etc/apache2/sites-available/ → El directorio donde se pueden almacenar 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 directorio habilitado para sitios. Por lo general, toda la configuración de bloqueo del servidor se realiza en este directorio.
- /etc/apache2/sites-enabled/ → El directorio donde se almacenan los hosts virtuales habilitados por sitio. Por lo general, estos se crean al vincular a 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 que se encuentran en este directorio cuando se inicia o vuelve a cargar para compilar una configuración completa.
- /etc/apache2/conf-available/, /etc/apache2/conf-enabled/ → Estos directorios tienen la misma relación que los directorios sitios disponibles y sitios habilitados, pero se utilizan para almacenar fragmentos de configuración que no pertenecen a un anfitrión virtual.
- /etc/apache2/mods-available/, /etc/apache2/mods-enabled/ → Estos directorios contienen los módulos disponibles y habilitados, respectivamente.
Registros del servidor
- /var/log/apache2/access.log → Cada solicitud al servidor web se registra en este archivo de registro a menos que se indique lo contrario.
- /var/log/apache2/error.log → De forma predeterminada, todos los errores se registran en este archivo.
Se puede encontrar más información acerca de este servidor en la página web del proyecto.