Cómo instalar Drupal en Ubuntu 20.04 LTS

En esta entrada veremos cómo instalar Drupal 10 en Ubuntu 20.04 LTS Focal Fossa paso a paso, de modo que disfrutes de la última versión de este popular CMS, Drupal 10, para crear y servir contenido web desde tu servidor o VPS Ubuntu.

Antes de instalar Drupal en Ubuntu 20.04 LTS

Si estás interesado en seguir los pasos de esta guía de instalación de Drupal 10 en Ubuntu 20.04 LTS sería recomendable partir de los siguientes requerimientos mínimos:

  • Una máquina Ubuntu 20.04 LTS Focal Fossa actualizada.
  • Un entorno o pila tipo LAMP (servicio web con PHP 8.1 y bases de datos).
  • Acceso a consola con un usuario con permisos de sudo.
  • Conexión a Internet.

¿No dispones aún del entorno necesario? Entonces es probable que te interese nuestra guía de instalación de la pila LAMP en Ubuntu 20.04 LTS e incluso la guía de instalación de PostgreSQL en Ubuntu 20.04 LTS.

Por otro lado, de las posibles formas de integrar Drupal 10 en el servicio hemos elegido hacerlo como parte del sitio web por defecto, aunque los cambios para que funcione como el sitio principal o un servidor virtual independiente son sencillos. También es muy importante trabajar sobre HTTPS, pero por simplicidad de la guía hemos usado HTTP. Tienes información adicional sobre estos aspectos en nuestra guía de instalación del servidor web Apache en Ubuntu 20.04 LTS.

Cómo descargar Drupal para Ubuntu 20.04 LTS

Vamos a descargar Drupal 10 para Ubuntu 20.04 LTS desde la sección de descargas del sitio oficial, ya que no existen paquetes en los repositorios de la distribución.

como descargar drupal 10 para ubuntu 20.04 lts focal fossa

Encontraremos la última versión disponible de Drupal en paquetes con fomatos .zip y .tar.gz, siendo el paquete .tar.gz el que descargamos, en este caso desde consola mediante el comando wget:

~$ wget --content-disposition https://www.drupal.org/download-latest/tar.gz

Cómo instalar Drupal en Ubuntu 20.04 LTS

Para poder instalar Drupal 10 en Ubuntu 20.04 LTS es necesario realizar una serie de tareas en el sistema, de modo que posteriormente el instalador web corra sin problemas. A continuación detallamos todos los pasos necesarios.

Archivos de Drupal

Extraemos el paquete que acabamos de descargar directamente en la ruta que nos interesa para la integración con el servicio web:

~$ sudo tar xf drupal-10.X.X.tar.gz -C /var/www/

Sustituye en el comando anterior 10.X.X por la versión que has descargado (la tecla tabulador ayudará con el autocompletado).

Como el nombre del nuevo subdirectorio creado contiene el número de versión en su nombre, puede ser buena idea crear un enlace simbólico sin números:

~$ sudo ln -s /var/www/drupal-10.X.X /var/www/drupal

Como Drupal 10 necesita escribir en su propio directorio de instalación, cambiaremos la propiedad del mismo y de su contenido al usuario con el que corre el servicio web en Ubuntu 20.04:

~$ sudo chown -R www-data: /var/www/drupal/

Servicio web

Drupal 10 está muy orientado al uso de Apache como servicio web, puesto que entre otras cosas puede hacer uso de algunos módulos que no están activados por defecto. Activamos dichos módulos de Apache:

~$ sudo a2enmod expires headers rewrite

El uso de estos módulos se realiza a través de archivos .htaccess, que no son interpretados por defecto, ajuste que añadiremos al archivo de configuración que crearemos para hacer la aplicación navegable a través de un alias:

~$ sudo nano /etc/apache2/sites-available/drupal.conf

Por tanto el contenido quedaría así:

Alias /drupal /var/www/drupal

<Directory /var/www/drupal>
        AllowOverride all
</Directory>

Guardamos los cambios y activamos la configuración:

~$ sudo a2ensite drupal.conf

Y reiniciamos el servicio web para aplicar todos estos ajustes:

~$ sudo systemctl restart apache2

Base de datos

Drupal 10 se apoya sobre el servicio de bases de datos existente en la máquina Ubuntu 20.04 LTS, admitiéndose varios motores de los que veremos los dos más populares. Veremos cómo crear las bases de datos y usuarios que necesita la aplicación.

MariaDB/MySQL

Conectamos al servicio con el cliente mysql y un usuario administrador:

~$ mysql -u root -p

Creamos la base de datos:

> create database drupal charset utf8mb4 collate utf8mb4_unicode_ci;

Creamos el usuario que trabajará con la base de datos:

> create user drupal@localhost identified by 'XXXXXXXX';

Concedemos los privilegios al usuario sobre la base:

> grant all privileges on drupal.* to drupal@localhost;

Y cerramos la conexión:

> exit

PostgreSQL

Creamos un rol con contraseña para Drupal 10:

~$ sudo -u postgres createuser -P drupal

Y creamos la base asociándola al rol anterior:

~$ sudo -u postgres createdb drupal -O drupal

PHP

Drupal 10 necesita la disponibilidad de ciertas extensiones en Ubuntu 20.04 LTS que obtendremos desde los repositorios de la distribución. Por ello, actualizamos las listas de paquetes:

~$ sudo apt update

E instalamos las extensiones necesarias, indicando en el nombre de los paquetes la versión de PHP con la que trabajemos; por ejemplo, si se trata de la versión 8.1:

~$ sudo apt install -y php8.1-apcu php8.1-gd php8.1-mbstring php8.1-uploadprogress php8.1-xml

Se necesitará también la extensión que corresponda al motor de bases de datos sobre el que corra Drupal 10, aplicándose lo ya dicho para la nomenclatura de los paquetes, siendo en el caso de MariaDB/MySQL:

~$ sudo apt install -y php8.1-mysql

Y en el de PostgreSQL:

~$ sudo apt install -y php8.1-pgsql

Terminada la instalación hay que recargar la configuración del servicio web:

~$ sudo systemctl reload apache2

Instalador web

Para acceder al instalador web de Drupal 10 en Ubuntu 20.04 LTS utilizaremos la URL de acceso a la aplicación según la forma de integrarla en el servicio web, en este caso añadiendo el alias a la dirección IP o nombre DNS del servidor.

Por ejemplo, la máquina Ubuntu 20.04 que hemos usado para elaborar este artículo es accesible en el subdominio ubuntu2004.local.lan, y hemos configurado el alias /drupal, por lo que usamos http://ubuntu2004.local.lan/drupal como URL:

como instalar drupal en ubuntu 20.04 lts focal fossa

En la página inicial del instalador web elegiremos el idioma de la instalación.

A continuación seleccionamos el perfil de instalación que necesitamos:

instalar drupal en ubuntu 20.04 lts focal fossa

Habitualmente el perfil recomendado es el estándar, aunque si sabes lo que quieres puedes elegir otro.

El siguiente paso es la comprobación de requisitos para la instalación, destacándose aquellos que no se cumplen, pero si has seguido los pasos anteriores deben cumplirse todos, y el instalador saltará directamente a la configuración de la conexión al servicio de bases de datos:

instalacion de drupal 10 en ubuntu 20.04 lts focal fossa

Si hay más de un servicio disponible elegiremos el que hemos preparado, introduciendo los datos de conexión tal como los creamos anteriormente.

Comienza el proceso de instalación:

instalador de drupal 10 en ubuntu 20.04 lts focal fossa

Tras la inicialización de la base de datos, instalación de módulos, traducciones, etc. se pedirá la información básica de identificación del nuevo sitio web y los datos del usuario administrador:

instalando drupal 10 en ubuntu 20.04 lts focal fossa

La instalación ultimará la actualización de traducciones y finalmente presentará el nuevo sitio Drupal 10 con sesión iniciada automáticamente para el usuario administrador:

drupal 10 en ubuntu 20.04 lts focal fossa

Ya está todo listo para empezar a crear contenido web en tu servidor Ubuntu 20.04 y desplegarlo con Drupal 10.

Post-instalación de Drupal 10 en Ubuntu 20.04 LTS

Si la instalación de Drupal que estás llevando a cabo sobre tu sistema Ubuntu 20.04 LTS está destinada a servir contenido en Internet entonces es muy importante de cara a la seguridad de tu sitio protegerlo contra ataques de tipo «HTTP Host Header«. Para ello editaremos el archivo de configuración de Drupal settings.php:

~$ sudo nano /var/www/drupal/sites/default/settings.php

Buscaremos la configuración de la variable trusted_host_patterns:

...
/**
 * Trusted host configuration.
...
 * $settings['trusted_host_patterns'] = [
 *   '^www\.example\.com$',
 * ];
...
 */
...

Este bloque de configuración está desactivado por completo en forma de comentarios, así que realizaremos la configuración fuera de dicho bloque. Añadimos a la variable sólo aquellos dominios a los que Drupal debe responder.

En nuestro ejemplo hemos trabajado con un servidor Ubuntu 20.04 LTS accesible en el dominio ubuntu2004.local.lan, por lo que lo configuraremos debidamente:

...
$settings['trusted_host_patterns'] = [
        '^ubuntu2004\.local\.lan$',
];
...

Es importante respetar las convenciones que muestran los comentarios, iniciando el dominio con el carácter ‘^‘, terminándolo con ‘$‘, y sustituyendo los puntos por ‘\.’.

Si el sitio Drupal debe ser accesible en más de un dominio, para configuraciones multi-sitio, podemos añadir más dominios dentro del bloque de configuración.

Una vez guardado el archivo, los cambios hacen efecto de inmediato.

Conclusión

Ahora que sabes cómo instalar Drupal 10 en Ubuntu 20.04 LTS Focal Fossa ya puedes empezar a crear y servir contenido web gracias a las características de este famoso CMS.

En caso de dudas, preguntas, alguna sugerencia de mejora de este artículo, si crees que necesita ser actualizado o quieres notificar algún error, puedes dejar un comentario. El SPAM no es bien recibido (el filtro lo elimina automáticamente).

¡Apoya comoinstalar.me!

¿Ya tienes listo para trabajar este CMS gracias a nuestra guía de instalación de Drupal 10 en Ubuntu 20.04 LTS? Si es así y te apetece expresar tu agradecimiento colaborando con el mantenimiento de este sitio y la creación de más guías y tutoriales, puedes hacerlo dejando desde 1 $ de propina en PayPal:

O, si te sientes especialmente agradecido, invitándonos a un café:

¡Gracias!

Valora esta entrada

5/5 - (5 votos)

6 comentarios en «Cómo instalar Drupal en Ubuntu 20.04 LTS»

  1. Qué tal, amigo. Cuando ingreso este comando:
    sudo tar xf drupal-9.X.X.tar.gz -C /var/www/
    Me da el siguiente error en la consola:
    no such file or directory
    tar: error is not recoverable:exit now

    ¿Qué puedo hacer ahí?

    Responder
    • Hola, Carlos. Tal como se indica en el tutorial hay que modificar el nombre (sustituir las X) por la versión que se haya descargado, que variará cada vez que suceda un nuevo lanzamiento. Por ejemplo, en este momento sería la 10.0.1.

      Responder
  2. Hola, me pierdo en el paso de la base de datos con SQL8, no entiendo a qué te refieres por plugin de conexión ni sé qué es.
    Supongo que es la nueva contraseña para el usuario que se está creando, o que en su defecto es la contraseña del usuario root, pero estoy confuso.

    POR FAVOR, RESUÉLVAME QUÉ TENGO QUE ESCRIBIR EN ESE PASO EN LAS X.

    Responder
    • Hola, Guillermo. El plugin de conexión se especifica tras la palabra clave with, y es importante especificarlo porque ciertas versiones de PHP no trabajan con ciertos plugins de conexión, de ahí espcificar el plugin más compatible. En ese comando lo único que tendrías que personalizar es la contraseña para el usuario que se está creando (sustituir XXXXXXXX por la contraseña que consideres).

      Responder

Deja un comentario