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.
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
- Servidor VPs con Ubuntu 20.04, puedes conseguir el tuyo en Contabo o montar uno virtual en tu pc con vagrant
- acceso SSH root o un usuario normal con privilegios sudo
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.