En este artículo veremos cómo instalar Drupal en Debian 10 Buster paso a paso, de forma que en unos minutos podrás mostrar tu nuevo sitio web y comunidad sobre tu servidor o VPS Debian gracias a este popular CMS.
Tabla de contenidos
Antes de instalar Drupal en Debian 10 Buster
Si tienes interés en completar esta guía de instalación en Drupal en Debian 10 Buster, debes partir de la siguiente base:
- Un sistema Debian 10 Buster actualizado.
- Una pila o entorno tipo LAMP (servidor web con PHP y servicio de bases de datos).
- Acceso a línea de comandos con un usuario con privilegios de sudo o el mismo root.
- Conexión a Internet.
En caso de que tu sistema no disponga del entorno necesario, consulta nuestra guía de instalación LAMP en Debian 10 Buster.
Puedes instalar Drupal en Debian 10 Buster como el sitio web principal del sistema, como parte del sitio web principal o como un servidor virtual independiente. Por simplicidad, en este tutorial instalaremos Drupal como parte del sitio web principal de Debian 10 Buster.
Cómo descargar Drupal para Debian 10 Buster
Tenemos que descargar Drupal para Debian 10 Buster desde su página oficial, ya que no existen paquetes en la distribución:
Encontraremos los paquetes de la última versión de Drupal en la sección de descargas del sitio oficial:
Se ofrece Drupal en forma de paquete comprimido tanto en versión .zip como .tar.gz.
En este tutorial copiaremos el enlace del paquete .tar.gz y descargaremos a través de consola con el comando wget:
~$ wget --content-disposition https://www.drupal.org/download-latest/tar.gz
Cómo instalar Drupal en Debian 10 Buster
Para instalar Drupal en Debian 10 Buster hay que completar una serie de trabajos previos en el sistema, que veremos a continuación.
Archivos de Drupal
Descomprimiremos el paquete de Drupal que acabamos de descargar en la ubicación que hayamos decidido según la configuración del sitio web:
~$ sudo tar xf drupal-9.X.X.tar.gz -C /var/www/html/
Conviene crear un enlace simbólico sobre el directorio de Drupal para tener un nombre sin números de versión (sustituye el número de versión como corresponda en el siguiente comando):
~$ sudo ln -s /var/www/html/drupal-9.X.X/ /var/www/html/drupal
Drupal necesita poder escribir en su propio directorio de instalación, para lo que otorgamos la propiedad del directorio y su contenido al servidor web:
~$ sudo chown -R www-data:www-data /var/www/html/drupal/
PHP
Drupal requiere la instalación en Debian 10 Buster de algunas extensiones de PHP, como gd, mbstring y xml. Si usas la versión nativa de Debian 10 puedes instalar las extensiones con el siguiente comando:
~$ sudo apt install -y php-apcu php-gd php-mbstring php-uploadprogress php-xml
Pero si utilizas el repositorio alternativo hay que especificar la versión instalada en el nombre de los paquetes; por ejemplo, para la versión 7.4:
~$ sudo apt install -y php7.4-apcu php7.4-gd php7.4-mbstring php7.4-uploadprogress php7.4-xml
También nos aseguraremos de que esté disponible la extensión que permita la conexión al sistema de bases de datos que vayamos a usar (teniendo en cuenta lo dicho para la nomenclatura de paquetes).
Por ejemplo, para MariaDB/MySQL:
~$ sudo apt install -y php-mysql
O para PostgreSQL:
~$ sudo apt install -y php-pgsql
Aplicamos la nueva configuración recargando la configuración del servidor web o del servicio PHP, según corresponda:
~$ sudo systemctl reload apache2
Base de datos
Debemos crear una base de datos para Drupal en el servicio de bases de datos que tengamos en Debian 10, vamos a ver cómo hacerlo en los dos motores más usados en Debian 10.
MariaDB/MySQL
Usaremos el cliente de consola mysql para crear la base de datos y el usuario que la manejará:
~$ mysql -u root -p
Creamos la mencionada base de datos:
> create database drupal character set utf8mb4 collate utf8mb4_unicode_ci;
En MariaDB y MySQL 5 creamos el usuario sin más:
> create user drupal@localhost identified by 'XXXXXXXX';
En MySQL 8 es importante especificar el plugin de autenticación del nuevo usuario:
> create user drupal@localhost identified with mysql_native_password by 'XXXXXXXX';
Concedemos al usuario los permisos sobre la base de datos:
> grant all privileges on drupal.* to drupal@localhost;
Finalizado el trabajo, salimos del cliente:
> exit
PostgreSQL
Creamos un nuevo rol con contraseña:
~$ sudo -u postgres createuser -P drupal
Y creamos la base de datos asociada a este rol:
~$ sudo -u postgres createdb drupal -O drupal
Eso sería todo.
Servidor web Apache
Drupal puede hacer uso del sistema de reescritura de URLs, basado en el módulo Rewrite de Apache, que no está activado por defecto en Debian 10.
Activamos el módulo Rewrite y otros que puede usar Drupal:
~$ sudo a2enmod expires headers rewrite
Y creamos una configuración para Drupal que permita el uso de archivos .htaccess que configuren el módulo Rewrite:
~$ sudo nano /etc/apache2/conf-available/drupal.conf
El contenido de este archivo es un bloque Directory para el directorio de Drupal en el que una directiva AllowOverride permitirá el uso de los archivos .htaccess:
<Directory /var/www/html/drupal> AllowOverride all </Directory>
Activamos la nueva configuración:
~$ sudo a2enconf drupal
Y reiniciamos el servidor web para aplicar todos estos cambios:
~$ sudo systemctl restart apache2
Instalador web
Para terminar la instalación de Drupal en Debian 10 Buster es necesario lanzar el instalador web desde un navegador. Usaremos la URL que corresponda al sitio web.
En este ejemplo, la máquina Debian 10 es accesible en el dominio debian10.local.lan, por lo que añadimos la ruta /drupal, quedando la URL http://debian10.local.lan/drupal para acceder al sitio:
Tras elegir el idioma en el que queremos Drupal, se descargará el paquete de idioma correspondiente y pasaremos a la selección del perfil de instalación:
Seleccionado el perfil, en la siguiente página debería mostrarse una comprobación de requisitos que la máquina Debian 10 debería satisfacer para Drupal, pero si has seguido los pasos anteriores el sistema los cumplirá y el instalador saltará directamente a la siguiente sección.
Llega el momento de introducir los datos de conexión a la base de datos:
Elegimos el tipo de motor de base de datos (si el sistema posee más de uno), e introducimos base, usuario y contraseña tal como los creamos anteriormente y continuamos.
Empezará el proceso de instalación:
Terminada la instalación llega el momento de configurar la identidad del sitio y crear el usuario administrador:
Al guardar los cambios y continuar se iniciará automáticamente sesión con el administrador y se mostrará la página principal de Drupal:
¡Listo! Ya puedes empezar a personalizar el sitio, crear contenidos, etc.
Post-instalación
Si se trata de un sitio de Internet es muy recomendable reforzar la seguridad ante ataques del tipo «HTTP Host Header«, para lo que configuraremos los dominios a los que responderá exclusivamente Drupal. Editaremos el archivo settings.php:
~$ sudo nano /var/www/html/drupal/sites/default/settings.php
Y buscaremos la variable trusted_horn_patterns:
... /** * Trusted host configuration. ... * $settings['trusted_host_patterns'] = [ * '^www\.example\.com$', * ]; ... */ ...
Un bloque de comentarios explica cómo añadir uno o varios dominios, si la máquina Debian 10 es accesible en más de uno. En este caso, fuera del bloque de comentarios, añadiremos la configuración para el dominio debian10.local.lan:
... $settings['trusted_host_patterns'] = [ '^debian10\.local\.lan$', ]; ...
Si hubiese más dominios que configurar, se añadirían en líneas adicionales dentro del bloque.
Guardados los cambios harán efecto de inmediato.
Conclusión
Así de fácil es instalar Drupal en Debian 10 Buster, sólo hay que tener en cuenta los pasos previos necesarios y en unos minutos tu servidor o VPS estará listo para servir contenidos y crear comunidad mediante este popular CMS.
Si tienes dudas o preguntas, alguna sugerencia, etc. puedes dejar un comentario.
Y si con esta guía de instalación de Drupal en Debian 10 Buster has montado su sitio web en tu servidor o VPS Debian, y te apetece agradecérnoslo, puedes dejar 1 $ de propina desde PayPal:
¡Gracias!
Actualizado a la versión 9.3.8.