Cómo instalar Apache en Ubuntu 20.04 LTS

En esta entrada veremos cómo instalar Apache en Ubuntu 20.04 LTS Focal Fossa paso a paso, de modo que puedas desplegar el servidor web más usado en Internet desde tu servidor o VPS Ubuntu.

Antes de instalar Apache en Ubuntu 20.04 Focal Fossa

Para poder completar los pasos de esta guía de instalación de Apache en Ubuntu 20.04 debes cumplir los siguientes requisitos:

  • Un sistema Ubuntu 20.04 Focal Fossa actualizado.
  • Un usuario con permisos de sudo.
  • Acceso a Internet.

Cómo instalar Apache en Ubuntu 20.04 Focal Fossa

Vamos a instalar Apache en Ubuntu 20.04 LTS desde los repositorios de la distribución, por lo que actualizaremos las listas de paquetes como paso previo:

~$ sudo apt update

El paquete que necesitamos es apache2, que instalaremos con apt:

~$ sudo apt install -y apache2

Terminada la descarga e instalación de Apache y sus dependencias se crea un nuevo servicio en Ubuntu 20.04, el servicio apache2.service o apache2, que queda en ejecución y habilitado para su inicio automático en cada arranque del sistema.

Puedes comprobar el estado de Apache en Ubuntu 20.04 en cualquier momento con el comando systemctl status apache2:

como instalar apache en ubuntu 20.04 focal fossa lts

Para averiguar la versión de Apache que tenemos instalada en Ubuntu 20.04 podemos usar el comando apachectl:

~$ apachectl -v
Server version: Apache/2.4.41 (Ubuntu)
Server built:   2020-04-13T17:19:17

Cómo configurar el firewall UFW de Ubuntu 20.04 para Apache

Si tienes activado el firewall UFW en Ubuntu 20.04 y quieres que Apache sea accesible desde la red, habrá que añadir algunas reglas para UFW.

Para permitir el acceso web estándar, protocolo HTTP, añadiremos la siguiente regla:

~$ sudo ufw allow http

Y si vas a ofrecer conexiones cifradas mediante HTTPS añadiremos esta otra regla:

~$ sudo ufw allow https

Cómo conectar a Apache en Ubuntu 20.04 Focal Fossa

Para acceder a Apache en Ubuntu 20.04 desde un navegador bastará con usar la dirección IP o dominio del servidor como URL, de modo que aparecerá la página web por defecto:

instalar apache en ubuntu 20.04 focal fossa lts

Cómo configurar Apache en Ubuntu 20.04 Focal Fossa

Para configurar Apache en Ubuntu 20.04 tendremos que trabajar sobre sus archivos de configuración, organizados bajo la ruta /etc/apache2.

Vamos a editar el fichero de configuración principal:

~$ sudo nano /etc/apache2/apache2.conf

Y al principio del archivo incluiremos una directiva ServerName:

...
        ServerName ubuntu2004.local
...

El valor de esta directiva puede ser el dominio principal del servidor, su nombre de máquina o incluso su dirección IP. El caso es que mientras no esté configurada, se lanzarán avisos en los registros de que no se puede resolver su valor.

Guardados los cambios, recargaremos la configuración de Apache:

~$ sudo systemctl reload apache2

Existen más archivos de configuración, muchos organizados en subdirectorios. Los archivos de configuraciones adicionales, módulos de Apache y servidores virtuales se guardan en los directorios conf-available/, mods-available/ y sites-available/ respectivamente. Pero estos archivos no son tenidos en cuenta por Apache a no ser que existan enlaces simbólicos en los subdirectorios conf-enabled/, mods-enabled/ y sites-enabled/.

Por tanto activar una configuración consiste en crear el correspondiente enlace simbólico, y desactivarla consiste en eliminar el enlace simbólico (sin necesidad de borrar físicamente el archivo de configuración). Podría resultar engorroso crear y eliminar manualmente estos enlaces, pero en Ubuntu 20.04 Apache nos ofrece las herramientas a2enconf, a2enmod y a2ensite para activar configuraciones, y a2disconf, a2dismod y a2dissite para desactivarlas.

Veremos ejemplos de uso a continuación.

Servidores virtuales de Apache en Ubuntu 20.04

La configuración de los servidores virtuales de Apache en Ubuntu 20.04 se guarda en los directorios sites-available/ y sites-enabled/. Hay que tener en cuenta que el sitio web por defecto, que ya hemos visitado, realmente es un servidor virtual, cuya configuración se guarda en el archivo sites-available/000-default.conf.

Para crear un nuevo servidor virtual de Apache necesitaremos en primer lugar un dominio distinto al principal, apuntando a la dirección IP del servidor.

En este ejemplo, en el que el dominio principal de la máquina Ubuntu 20.04 es ubuntu2004.local, tendremos un subdominio ejemplo.ubuntu2004.local configurado y apuntando a la dirección IP del servidor. Si intentamos acceder obtendremos la misma página web por defecto, ya que todos los dominios que apunten al servidor, si no tienen su propio servidor virtual, serán atendidos por el servidor virtual por defecto.

instalar y configurar apache en ubuntu 20.04 focal fossa lts

Ahora vamos a crear un servidor virtual que responda al dominio ejemplo.ubuntu2004.local. Para ello crearemos la carpeta de documentos web de este sitio:

~$ sudo mkdir /var/www/ejemplo.ubuntu2004.local

Y creamos un archivo HTML para tener un contenido mínimo:

~$ sudo nano /var/www/ejemplo.ubuntu2004.local/index.html

El contenido será lo justo para identificar el sitio:

<h1>Bienvenidos a ejemplo.ubuntu2004.local</h1>
<small>http://ejemplo.ubuntu2004.local</small>

Guardamos los cambios y creamos el archivo de configuración del servidor virtual:

~$ sudo nano /etc/apache2/sites-available/ejemplo.ubuntu2004.local.conf

Con el siguiente contenido:

<VirtualHost *:80>
        ServerName ejemplo.ubuntu2004.local
        DocumentRoot /var/www/ejemplo.ubuntu2004.local

        <Directory /var/www/ejemplo.ubuntu2004.local>
        </Directory>

        CustomLog ${APACHE_LOG_DIR}/access-ejemplo.ubuntu2004.local.log combined
        AccessLog ${APACHE_LOG_DIR}/error-ejemplo.ubuntu2004.local.log
</VirtualHost>

La estructura de la configuración es la siguiente:

  • El bloque VirtualHost, dentro del que editamos la configuración.
  • ServerName especifica el dominio al que responde el servidor virtual.
  • DocumentRoot es la carpeta de archivos del sitio web.
  • En el bloque Directory podemos establecer configuraciones personalizadas para el directorio especificado.
  • CustomLog es el registro de accesos.
  • ErrorLog es el registro de errores.

Guardamos los cambios y activamos el servidor virtual:

~$ sudo a2ensite ejemplo.ubuntu2004.local.conf

Y recargamos la configuración de Apache para que el nuevo servidor virtual esté disponible:

~$ sudo systemctl reload apache2

Si accedemos tanto a http://ubuntu2004.local como a http://ejemplo.ubuntu2004.local, veremos que ahora cada dominio ofrece un sitio web diferente:

como configurar apache en ubuntu 20.04 focal fossa lts

Este proceso lo podemos realizar con tantos dominios y servidores virtuales como necesitemos.

Seguridad con el protocolo HTTPS en Apache para Ubuntu 20.04

Para poder configurar el protocolo HTTPS de Apache en Ubuntu 20.04 hay que cargar el módulo SSL, que por defecto no está activado:

~$ sudo a2enmod ssl

Será necesario reiniciar el servicio:

~$ sudo systemctl restart apache2

Si trabajamos con dominios en Internet es importante obtener certificados firmados por autoridades certificadoras, pero en este tutorial usaremos dominios locales y certificados autofirmados, para que todo el mundo pueda practicar la configuración.

Creamos certificados autofirmados para el servidor virtual de nuestro ejemplo:

~$ sudo openssl req -newkey rsa:2048 -x509 -nodes -days 365 -out /etc/ssl/certs/ejemplo.ubuntu2004.local.crt -keyout /etc/ssl/private/ejemplo.ubuntu2004.local.key

Tendremos que facilitar información para identificación del certificado, la mayoría opcional, pero sí es importante especificar en «Common Name» el dominio para el que creamos los certificados:

...
Country Name (2 letter code) [AU]:ES
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:ejemplo.ubuntu2004.local
Email Address []:
~$

Ahora creamos la configuración para el servidor virtual, en el subdirectorio sites-available/:

~$ sudo nano /etc/apache2/sites-available/ejemplo.ubuntu2004.local.conf

Tras el bloque VirtualHost existente añadimos uno nuevo para la configuración SSL:

...
<VirtualHost *:443>
        ServerName ejemplo.ubuntu2004.local
        DocumentRoot /var/www/ejemplo.ubuntu2004.local

        <Directory /var/www/ejemplo.ubuntu2004.local>
        </Directory>

        SSLEngine on
        SSLCertificateFile /etc/ssl/certs/ejemplo.ubuntu2004.local.crt
        SSLCertificateKeyFile /etc/ssl/private/ejemplo.ubuntu2004.local.key

        CustomLog ${APACHE_LOG_DIR}/access-ejemplo.ubuntu2004.local.log combined
        AccessLog ${APACHE_LOG_DIR}/error-ejemplo.ubuntu2004.local.log
</VirtualHost>

La mayoría de directivas de configuración son las mismas, pero introducimos algunas novedades:

  • VirtualHost especifica el puerto de conexión, el 443 es el estándar para conexiones HTTPS.
  • SSLEngine activa el cifrado SSL para este servidor virtual en el puerto especificado.
  • SSLCertificateFile indica la ruta al certificado público.
  • SSLCertificateKeyFile indica la clave privada con la que se cifra la conexión.

Guardamos los cambios y recargamos la configuración de Apache:

~$ sudo systemctl reload apache2

Accedemos al servidor virtual, pero esta vez lo hacemos usando el protocolo HTTPS, en este ejemplo accedemos con https://ejemplo.ubuntu2004.local como URL:

configurar servidores virtuales de apache en ubuntu 20.04 focal fossa lts

Al tratarse de certificados autofirmados el navegador no podrá comprobar su autenticidad, por eso muestra la advertencia. Si los certificados estuvieran firmados por alguna autoridad certificadora reconocida, el navegador habría accedido al sitio directamente. El navegador suele ofrecer la forma para continuar con el acceso, mostrándose la página:

servidores virtuales de apache en ubuntu 20.04 focal fossa lts

Se mostrará el sitio pero, dependiendo del navegador, de un modo u otro seguirá avisando del problema de los certificados autofirmados. Aun así, la conexión está cifrada y es segura.

Conclusión

Ahora que sabes cómo instalar y configurar el servidor web Apache en Ubuntu 20.04 Focal Fossa LTS podrás desplegar diversos sitios web, tanto en red local como desde Internet, gracias a la característica de servidores virtuales, y usando el cifrado SSL para establecer conexiones seguras HTTPS.

Si tienes alguna duda o pregunta, quieres sugerir alguna mejora de este artículo o notificar algún error, puedes dejar un comentario.

¡Apoya comoinstalar.me!

¿Ya dispones de servicio web gracias a esta guía de instalación y configuración de Apache en Ubuntu 20.04 LTS? Si es así y te apetece agradecérnoslo, puedes realizar una mínima aportación que ayudará mucho al mantenimiento de este sitio y a la creación de nuevos tutoriales de Ubuntu 20.04 y Apache. ¡Gracias!

 

Valora esta entrada

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

Deja un comentario

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.

ACEPTAR
Aviso de cookies