Cómo instalar Drupal 9 CMS en Ubuntu 20.04

En este tutorial voy a enseñar cómo instalar Drupal 9 CMS en Ubuntu 20.04

Drupal es un software de código abierto que tiene muchas características, como la facilidad de creación de contenidos, un rendimiento fiable y una excelente seguridad.

Cómo instalar Drupal 9 CMS en Ubuntu

Con las herramientas de Drupal, puedes construir el contenido versátil y estructurado que necesitan las experiencias web dinámicas. Como sistema de gestión de contenidos web (CMS) de código abierto escrito en PHP, es una gran alternativa a otro CSM como WordPress o Joomla. En este tutorial, le mostraremos cómo instalar Drupal 9 en Ubuntu 20.04 (Focal Fossa).

Requisitos previos

Inicia sesión a través de SSH y actualiza el sistema

Inicie sesión en su VPS Ubuntu 20.04 con SSH como usuario root o como usuario normal con privilegios sudo

ssh usuario@direccion_ip  -p puerto

Recuerda sustituir Dirección_IP y Número_Puerto por la dirección IP real de tu servidor y el número de puerto SSH respectivamente.

Puedes comprobar si tienes la versión adecuada de Ubuntu instalada en tu servidor con el siguiente comando:

sudo  lsb_release -a

Debería obtener esta salida:

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.2 LTS
Release:        20.04
Codename:       focal

A continuación, ejecuta el siguiente comando para asegurarse de que todos los paquetes instalados en el servidor se actualizan a la última versión disponible

sudo apt update && sudo apt upgrade

Instalar y configurar el servidor web

Drupal 9 soporta muchos servidores web, como Apache, nginx, LiteSpeed, incluso Microsoft IIS. En este tutorial, le mostraremos cómo instalar Drupal 9 usando apache o nginx en su Ubuntu 20.04.

a. apache

Si quieres usar Apache, ejecuta este comando para instalarlo desde el repositorio.

sudo apt install -y apache2 apache2-utils

Una vez instalado, Apache se ejecutará y podremos empezar a crear un host virtual.

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

Pega lo siguiente en el archivo /etc/apache2/sites-available/drupal.conf. Sustituye “tu_dominio” por tu nombre de dominio.

<VirtualHost *:80>
     ServerName drupal.tu_dominio.com
     ServerAlias drupal.tu_dominio.com
     ServerAdmin admin@tu_dominio.com
     DocumentRoot /var/www/html/drupal/

     CustomLog ${APACHE_LOG_DIR}/drupal_access.log combined
     ErrorLog ${APACHE_LOG_DIR}/drupal_error.log

      <Directory /var/www/html/drupal>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
            RewriteEngine on
            RewriteBase /
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
      </Directory>
</VirtualHost>

Guarda el archivo y luego sal del editor nano. Para habilitar el host virtual, vamos a ejecutar este comando:

sudo a2ensite drupal

Como puedes ver en el host virtual de Apache de arriba, contiene RewriteRule. Por defecto, el mod rewrite de Apache en Ubuntu no está habilitado. Por lo tanto, tenemos que habilitar el módulo y reiniciar Apache.

sudo a2enmod rewrite
sudo systemctl restart apache2

b. nginx

Si quieres usar nginx en lugar de apache, ejecuta este comando para instalarlo.

sudo apt install nginx

Ahora, vamos a crear un bloque de servidor nginx para proceder a la instalación de Drupal 9.

sudo nano /etc/nginx/sites-enabled/drupal.conf

Pega el siguiente contenido en el archivo. Sustituye “tu_dominio” por tu nombre de dominio.

server {
    listen 80;
    
    root /var/www/html/drupal;

    index index.php index.html index.htm;

    server_name drupal.tu_dominio.com;

    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }

    location = /favicon.ico { log_not_found off; access_log off; }
    location = /robots.txt { log_not_found off; access_log off; allow all; }
    location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
        expires max;
        log_not_found off;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Guarda el archivo y luego sal.

Drupal se instalará en el directorio /var/www/html/drupal. Para ello, tenemos que crear el directorio.

sudo mkdir /var/www/html/drupal

Instalar el servidor de la base de datos

Drupal 9 requiere MariaDB 10.3+ o MySQL/Percona 5.7.8+ o superior, PostgreSQL 10.0 o superior, SQLite 3.26 o superior, el servidor de base de datos es necesario para almacenar sus datos de Drupal. En este paso, instalaremos MariaDB desde el repositorio de Ubuntu.

Ejecuta el siguiente comando para instalar el servidor MariaDB desde los repositorios oficiales de Ubuntu:

sudo apt install mariadb-server mariadb-client

Una vez instalado, MariaDB se ejecutará y ya está configurado para ejecutarse después de reiniciar, por defecto.

A continuación, asegura la instalación de MariaDB con el siguiente comando:

sudo mysql_secure_installation

Este script establecerá la contraseña de root de MariaDB, deshabilitará el inicio de sesión de root remoto y eliminará los usuarios anónimos como se muestra a continuación:

Enter current password for root (enter for none):
Set root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Crear una base de datos

Inicia sesión en el cli de MySQL como usuario root y ejecuta los siguientes comandos:

sudo mysql -u root -p

Se te pedirá tu contraseña de root de MySQL, la cual creaste en el paso anterior. Y, una vez iniciada la sesión, ejecute estos comandos. Sustituye las palabras en azul por los nombres que tu quieras. No olvide reemplazar la CONTRASEÑA ‘contraseña‘ por una más fuerte y única.

CREATE DATABASE drupal9;

Observa que en el siguiente comando estamos usando la Instrucción GRANT para dar privilegios y crear el usuario al mismo tiempo, esto se hace a partir de determinada versión de MariaDB

GRANT ALL PRIVILEGES ON drupal9.* TO 'drupal9_usuario'@localhost IDENTIFIED BY 'contraseña';
FLUSH PRIVILEGES;
EXIT;

Instalar PHP

En esta sección, instalaremos PHP 7.4. Ejecuta el siguiente comando para instalar PHP 7.4

sudo apt install php7.4 libapache2-mod-php7.4 php7.4-{common,mbstring,xmlrpc,soap,gd,xml,intl,mysql,cli,zip,curl,fpm} -y

Si decides usar Apache, ejecuta este comando y reinicia Apache.

sudo a2enmod php7.4
sudo systemctl restart apache2

Si eliges nginx, simplemente reinicia nginx después de instalar PHP 7.4

sudo systemctl restart nginx

Cómo instalar Drupal 9 CMS en Ubuntu

En esta sección, vamos a descargar e instalar Drupal 9. En el momento de escribir ste tutorial, Drupal 9.3.3 es la última versión, puedes consultarla en su página de lanzamiento en https://www.drupal.org/project/drupal. Según su documentación, esta versión 9.3.x de Drupal recibirá soporte de seguridad hasta el 8 de diciembre de 2022.

cd /var/www/html/
sudo wget https://ftp.drupal.org/files/projects/drupal-9.3.3.tar.gz

Una vez descargado, tenemos que extraer el archivo comprimido.

sudo tar xzvf drupal-9.3.3.tar.gz -C /var/www/html/drupal --strip-components=1

Luego, cambia los permisos.

sudo chown -R www-data. /var/www/html/drupal

Navega a http://drupal.tu_dominio.com e inicia la instalación.

Elige el idioma que desees y luego haz clic en el botón de guardar y continuar.

Una vez completado, será llevado al último paso para configurar su sitio web de Drupal.

Rellena los detalles y luego haz clic en el botón de guardar y continuar para finalizar la instalación. Y eso es todo, serás redirigido automáticamente al backend de tu sitio web Drupal.

Instalar un certificado SSL gratuito

Se recomienda asegurar su sitio web con un certificado SSL. No es un paso obligatorio, pero proporciona conexiones seguras para su instancia de Drupal.

Primero, instala el cliente Certbot en tu sistema para gestionar el SSL:

apt install python3-certbot-apache python3-certbot-nginx

Dependiendo de cuál sea tu servidor web, puedes ejecutar uno de estos comandos.

sudo certbot --apache
sudo certbot --nginx

Siga los pasos para instalar un certificado SSL gratuito de Let’s Encrypt. Verás una salida similar a esta:

master@ubuntu20:~# sudo certbot --apache
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): 

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: a
There seem to be problems with that address. Enter email address (used for
urgent renewal and security notices)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: n

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Elige el dominio/subdominio para el que estás instalando Drupal 9, y certbot instalará el certificado SSL para él. También puede elegir si desea redirigir el tráfico HTTP a HTTPS o no.

Ya está. Ha instalado con éxito Drupal 9 en su máquina Ubuntu 20.04.

¡que tengas un Ingenioso día!

¡que tengas un ingenioso día!

Contrata tu plan Ingenios@ de Sistemas por 5€ al mes y responderé a todas tus preguntas sobre tecnología en el menor tiempo posible. Pasa a formar parte de la comunidad Ingenios@s de Sistemas y disfruta de contenido exclusivo y aprende sobre sistemas Open Source, Blockchain, SmarContract, Web3, Inteligencia Artificial y Reaidad Virtual, súbete al tren de la Revolución 4.0

Si quieres estar al día y no perderte nada Suscribete al Podcast Ingenios@s de Sistemas, un episodio diario que te mantendrá informado y formado en esta vertiginosa carrera.

Deja un comentario

Share to...