Cómo instalar Drupal en Alma Linux 9

Drupal es un sistema de gestión de contenidos (CMS) de código abierto que se utiliza para crear y gestionar sitios web. Conocido por su flexibilidad y solidez, Drupal permite a los usuarios crear y organizar contenidos, personalizar la presentación, automatizar tareas administrativas y gestionar las funciones y permisos de los usuarios. Es especialmente favorecido por su arquitectura modular, que permite a los desarrolladores ampliar y modificar funcionalidades mediante miles de módulos y temas complementarios. Drupal es altamente escalable, lo que lo hace adecuado tanto para pequeños blogs personales como para grandes empresas y sitios web gubernamentales. Su fuerte apoyo por parte de la comunidad y su completa documentación mejoran aún más su usabilidad y potencial de desarrollo.

En este tutorial, te guiaremos a través de la instalación de Drupal en un servidor Alma Linux 9 utilizando la pila LAMP (Linux, Apache/Httpd, MariaDB y PHP). Después, te mostraremos cómo proteger tu instalación de Drupal con Firewalld y certificados SSL utilizando Certbot y Let’s Encrypt.

Requisitos previos

Antes de empezar, asegúrate de que tienes los siguientes requisitos:

  • Un servidor Alma Linux 9.
  • Un usuario no root con privilegios de administrador.
  • Un nombre de dominio apuntando a una dirección IP del servidor.
  • Un SELinux con estado permisivo.

Instalación de dependencias

En este momento, la última versión de Drupal requiere PHP 8.3, por lo que necesitas instalarlo a través de un repositorio de terceros. Además, instalarás otras dependencias, como el servidor web Httpd y el servidor MariaDB.

Antes de instalar las dependencias, añade el repositorio EPEL y Remi a tu servidor Alma Linux. Introduce y cuando se te pida añadir el repositorio.

sudo dnf install epel-release dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm

En las distribuciones basadas en RHEL, algunos paquetes vienen como módulos de repositorio. Habilita el módulo de repositorio para PHP 8.3 a través del repositorio Remi con el siguiente comando.

sudo dnf module reset php
sudo dnf module enable php:remi-8.3

activar repo php

Ahora instala los paquetes LAMP Stack (Apache/Httpd, MariaDB y PHP) con el comando dnf que aparece a continuación. Cuando se te solicite, introduce y para confirmar la instalación.

sudo dnf install httpd mariadb-server php php-cli php-devel php-mbstring php-gd php-xml php-curl php-mysqlnd php-pdo php-json php-opcache php-pear php-pecl-apcu php-pecl-crypto

instalar deps

Una vez finalizada la instalación, inicia y activa el servicio httpd con el comando que aparece a continuación.

sudo systemctl start httpd
sudo systemctl enable httpd

A continuación, inicia y habilita el servicio mariadb con el siguiente comando.

sudo systemctl start mariadb
sudo systemctl enable mariadb

Por último, verifica la versión de PHP utilizando el siguiente comando. Verás que PHP 8.3 está instalado en tu sistema.

php -v
php -m

comprobar php

Configurar Firewalld

Por defecto, el firewalld está instalado y funcionando en Alma Linux. Debes abrir el acceso a los protocolos HTTP y HTTPS a través de firewalld y permitir el tráfico a tu instalación de Drupal.

Añade los servicios HTTP y HTTPS a firewalld utilizando el comando que se indica a continuación. A continuación, recarga firewalld para aplicar los cambios.

sudo firewall-cmd --add-service={http,https} --permanent
sudo firewall-cmd --reload

Ahora ejecuta el siguiente comando para verificar el estado de firewalld y listar las reglas habilitadas. Verás que tanto el servicio HTTP como el HTTPS se han añadido al firewalld.

sudo firewall-cmd --list-all

configurar firewalld

Configurar PHP

En esta sección, configurarás PHP editando la configuración por defecto /etc/php.ini e instalando la extensión adicional uploadprogress a través de PECL (PHP Extension Community Library). La extensión uploadprogress es necesaria para Drupal, pero sólo está disponible como paquete PECL.

Abre el archivo de configuración PHP /etc/php.ini utilizando el comando del editor nano que aparece a continuación.

sudo nano /etc/php.ini

Cambia la configuración por defecto por la siguiente. Asegúrate de ajustar las opciones memory_limit y date.timezone con tu entorno actual.

memory_limit = 512M
upload_max_filesize = 60M
max_execution_time = 300
date.timezone = Europe/Stockholm

Guarda el archivo y sal de él cuando hayas terminado.

Ahora ejecuta el siguiente comando para instalar el módulo uploadprogress en tu sistema. El módulo uploadpprogress está disponible en el repositorio PECL, no en el repositorio de paquetes.

sudo pecl install uploadprogress

Una vez completada la instalación, obtendrás la siguiente salida:

instalar uploadprogress

A continuación, ejecuta el siguiente comando para crear una nueva configuración para habilitar la extensión uploadprogress.

cat <<EOF | sudo tee /etc/php.d/uploadprogress.ini
; configuration for php uploadprogress module
; priority 15
extension=uploadprogress.so
EOF

Reinicia el servicio httpd para aplicar las modificaciones a PHP.

sudo systemctl restart httpd

Por último, verifica el módulo uploadprogress con el siguiente comando. Asegúrate de que el módulo uploadprogress está habilitado en tu instalación de PHP.

php -m | grep uploadprogress

configuración subirprogreso

Configurar MariaDB

Después de configurar PHP, tendrás que configurar la instalación de tu servidor MariaDB. Asegurarás MariaDB mediante la línea de comandos, y luego crearás una nueva base de datos y un nuevo usuario para Drupal mediante el cliente MariaDB.

Asegura tu servidor MariaDB con el siguiente comando.

sudo mariadb-secure-installation

Durante el proceso, introduce Y para confirmar y aplicar una nueva configuración o N para rechazar la configuración. A continuación se indican las configuraciones de MariaDB que se solicitarán:

  • ¿Cambiar a autenticación unix_socket? Introduce n y pulsa ENTER. El usuario raíz por defecto de MariaDB ya está protegido. opcionalmente, también puedes habilitarlo escribiendo y para sí.
  • ¿Cambiar la contraseña de root? Introduce y para confirmar y establecer tu nueva contraseña de root de MariaDB.
  • ¿Eliminar usuario anónimo? Introduce y para confirmar.
  • ¿Deshabilitar el inicio de sesión de root de forma remota? Introduce y para confirmar. Sólo se permitirá la conexión local si utilizas el usuario raíz de MariaDB.
  • ¿Eliminar la base de datos de prueba y el acceso a ella?. Introduce y para confirmar y eliminar la base de datos por defecto «test».
  • Por último, introduce y de nuevo para recargar todos los privilegios de las tablas en tu servidor MariaDB y aplicar los nuevos cambios.

Accede al servidor MariaDB con el siguiente comando mariadb. Escribe tu contraseña de root de MariaDB cuando se te solicite.

sudo mariadb -u root -p

Ahora ejecuta las siguientes consultas para crear una nueva base de datos drupaldb, un usuario drupal, con la contraseña p4ssword. Esta base de datos será utilizada por Drupal, así que asegúrate de ajustar los siguientes detalles de la base de datos con tu información.

CREATE DATABASE drupaldb;
CREATE USER drupal@localhost IDENTIFIED BY 'p4ssword';
GRANT ALL ON drupaldb.* TO drupal@localhost WITH GRANT OPTION;
FLUSH PRIVILEGES;

configurar db

A continuación, verifica los privilegios para el usuario Drupal utilizando la consulta siguiente. Verás que el usuario Drupal puede acceder a la base de datos Drupaldb.

SHOW GRANTS FOR drupal@localhost;

Por último, introduce quit para salir del servidor MariaDB.

mostrar privilegios

Descargar el código fuente de Drupal

Ahora que has configurado MariaDB y creado la base de datos y el usuario, puedes descargar el código fuente de Drupal y configurar el DocuemtRoot o directorio raíz web para la instalación de Drupal. En este caso, descargarás el código fuente de Drupal mediante wget en lugar de instalarlo mediante Composer.

Ve al directorio /var/www y descarga el último código fuente de Drupal utilizando el comando wget que se indica a continuación.

cd /var/www/
wget https://www.drupal.org/download-latest/tar.gz -O drupal.tar.gz

Una vez descargado, extrae el código fuente de Drupal y renombra el directorio extraído a drupal. Con esto, tu directorio DocumentRoot para Drupal estará disponible en /var/www/drupal

tar -xvf drupal.tar.gz
mv drupal-* drupal

Ahora ejecuta el siguiente comando para cambiar la propiedad del directorio/var/www/drupal al usuario apache y cambia el permiso a 755.

sudo chown -R apache:apache /var/www/drupal/
sudo chmod -R 755 /var/www/drupal/

Crear un host virtual httpd

En esta sección, crearás una nueva configuración de host virtual Httpd para Drupal. Para ello, asegúrate de haber preparado tu nombre de dominio para Drupal, ya sea local o público.

En primer lugar, crea una nueva configuración de host virtual httpd /etc/httpd/conf.d/drupal.conf utilizando el siguiente comando del editor nano.

sudo nano /etc/httpd/conf.d/drupal.conf

Introduce la configuración que aparece a continuación y asegúrate de cambiar la opción NombreServidor por tu nombre de dominio.

<VirtualHost *:80>
ServerName hwdomain.io
ServerAdmin [email protected]
DocumentRoot /var/www/drupal

ErrorLog /var/log/httpd/hwdomain.io.error.log
CustomLog /var/log/httpd/hwdomain.io.access.log combined

<Directory /var/www/drupal>
Options FollowSymlinks
#Allow .htaccess
AllowOverride All
Require all granted
<IfModule security2_module>
SecRuleEngine Off
# or disable only problematic rules
</IfModule>
</Directory>

<Directory /var/www/drupal/>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</Directory>

</VirtualHost>

Guarda el archivo y sal del editor cuando haya terminado.

Ahora ejecuta el siguiente comando para verificar tu configuración httpd. Asegúrate de que tienes una salida Sintaxis OK, confirmando que tienes la sintaxis httpd correcta.

sudo apachectl configtest

Por último, reinicia el httpd con el siguiente comando para aplicar tus nuevos cambios en el host virtual.

sudo systemctl restart httpd

configuración vhost

Configurar HTTPS mediante Certbot

En esta sección, configurarás HTTPS para Drupal a través de Certbot y Letsencrypt. Haz esto cuando utilices el dominio público, para el dominio local, puedes generar un certificado Autofirmado.

Instala el plugin Certbot y Certbot Apache utilizando el comando que aparece a continuación. Introduce y para confirmar la instalación.

sudo dnf install certbot python3-certbot-apache

Una vez completada la instalación, genera certificados SSL/TLS para tu instalación de Drupal utilizando el comando certbot que aparece a continuación. Asegúrate de cambiar el nombre de dominio y la dirección de correo electrónico con tu información.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d hwdomain.io

Una vez finalizado el proceso, tus certificados SSL/TLS estarán disponibles en el directorio/etc/letsencrypt/live/domain.com. Además, tu instalación de Drupal debería configurarse automáticamente con HTTPS.

Instalar Drupal

Abre tu navegador web y visita el nombre de dominio de la instalación de Drupal, como https://hwdomain.io/.

Selecciona el idioma que prefieras y haz clic en el botón Guardar y continuar.

idioma por defecto

Para el perfil de instalación, selecciona Estándar si es la primera vez que instalas Drupal, luego haz clic en Guardar y continuar.

perfil de instalación

Una vez finalizada la comprobación del sistema, verás la configuración de la base de datos para Drupal. Introduce los detalles de la información de tu base de datos MariaDB, haz clic en Guardar y continuar de nuevo.

configuración de la base de datos

Ahora debería iniciarse la instalación de Drupal, y verás lo siguiente:

proceso de instalación de drupal

Una vez finalizada la instalación, introduce los datos de tu sitio Drupal y crea un nuevo usuario administrador para Drupal. A continuación, haz clic en Guardar y continuar para confirmar.

configuración del sitio

Cuando finalice la configuración, obtendrás la página de inicio de Drupal como la siguiente:

instalación completa

Conclusión

¡Enhorabuena! Ya has instalado Drupal en el servidor Alma Linux 9. Has instalado Drupal con Httpd, MariaDB y PHP. También has asegurado Drupal con SSL/TLS de Letsencrypt. Con Drupal instalado, empieza a añadir nuevos temas o instalar Extensiones.

También te podría gustar...