En esta entrada vamos a ver cómo instalar Drupal en Debian 9 Stretch paso a paso, de modo que al terminar tendrás en funcionamiento este popular CMS en tu servidor o VPS Debian sin apenas esfuerzo.
Tabla de contenidos
Antes de instalar Drupal en Debian 9 Stretch
Si quieres seguir los pasos de esta guía de instalación de Drupal en Debian 9 Stretch, es necesario cumplir unos requisitos básicos:
- Un sistema Debian 9 Stretch actualizado.
- Una pila tipo LAMP (servidor web con PHP versión 7.3 ó superior y bases de datos).
- El paquete ca-certificates.
- Acceder a consola como root o usuario con privilegios de sudo.
- Conexión a Internet.
Si aún te falta por instalar el entorno necesario, echa un vistazo a nuestra guía de instalación LAMP en Debian 9 Stretch antes de continuar.
De las múltiples formas de instalar un sitio web en un servidor Debian 9, por brevedad y simplicidad de este tutorial elegiremos la instalación de Drupal como un subdirectorio de la página web por defecto del sistema.
Igualmente es más que recomendable configurar el servidor web con acceso seguro HTTPS mediante certificados SSL.
Cómo descargar Drupal para Debian 9 Stretch
Vamos a descargar Drupal para Debian 9 Stretch desde la página oficial del proyecto, ya que no hay paquetes en los repositorios de la distribución. En la sección de descargas encontraremos la última versión de Drupal en formato .zip y en formato .tar.gz:
Puedes realizar la descarga desde el navegador, pero en esta ocasión copiaremos el enlace del paquete .tar.gz para descargarlo desde línea de comandos usando la herramienta wget:
~$ wget --content-disposition https://www.drupal.org/download-latest/tar.gz
Cómo instalar Drupal en Debian 9 Stretch
Para poder instalar Drupal en Debian 9 Stretch debemos realizar una serie de trabajos preliminares de preparación del sistema, de modo que durante el proceso de instalación en sí no encontremos ninguna dificultad.
Trabajo con los archivos de Drupal
Descomprimiremos el paquete que acabamos de descargar directamente en la ruta que hayamos decidido para el servidor web, en este caso será dentro de la página web principal de Debian 9:
~$ sudo tar xf drupal-9.X.X.tar.gz -C /var/www/html/
La carpeta en la que se ha descomprimido contiene número de versión en su nombre, así que podemos renombrarla como drupal/ o crear un enlace simbólico:
Modifica el nombre del directorio de Drupal en tu sistema teniendo en cuenta la versión que hayas descargado, que puede ser posterior a la usada en este tutorial
~$ sudo ln -s /var/www/html/drupal-9.X.X/ /var/www/html/drupal
Como Drupal necesita poder escribir en su propia carpeta de instalación, cambiaremos el propietario de la misma por el usuario con el que se ejecuta el servicio web (www-data en el caso de Apache):
~$ sudo chown -R www-data:www-data /var/www/html/drupal/
Trabajos con el servicio de bases de datos
Como cualquier CMS o aplicación web importante, Drupal se apoya en un motor de bases de datos, así que veremos cómo preparar los dos servicios más usados en Drupal y Debian 9.
MariaDB/MySQL
Usaremos el cliente mysql identificándonos con un usuario administrador:
~$ mysql -u root -p
Creamos en primer lugar la base de datos para Drupal:
> create database drupal character set utf8mb4 collate utf8mb4_unicode_ci;
Necesitmos un usuario que maneje esta nueva base de datos. Si usas MySQL 8 con el plugin de autenticación de usuarios caching_sha2_password por defecto, crea el usuario de esta forma:
> create user drupal@localhost identified with mysql_native_password by 'XXXXXXXX';
Si no usas ese plugin o usas MariaDB o MySQL 5, crea el usuario así:
> create user drupal@localhost identified by 'XXXXXXXX';
Ahora daremos permisos al usuario sobre la base de datos:
> grant all privileges on drupal.* to drupal@localhost;
Ya podemos finalizar la sesión y cerrar el cliente:
> exit
PostgreSQL
Creamos el rol con contraseña:
~$ sudo -u postgres createuser -P drupal
Y creamos la base de datos asociada al rol anterior:
~$ sudo -u postgres createdb drupal -O drupal
Eso es todo.
Trabajos con PHP
Para su funcionamiento, Drupal requiere la instalación en Debian 9 de varias extensiones de PHP, que instalaremos con apt. Como obligatoriamente debes tener configurado el repositorio alternativo, habrá que indicar la versión de PHP instalada en el nombre de los paquetes a instalar. Por ejemplo, para PHP 7.4:
~$ sudo apt install -y php7.4-{apcu,gd,mbstring,uploadprogress,xml}
También serán necesarias las extensiones para conectar con el servicio de bases de datos que queramos utilizar.
Para PostgreSQL:
~$ sudo apt install -y php7.4-pgsql
Y para MariaDB/MySQL:
~$ sudo apt install -y php7.4-mysql
Al terminar la instalación de los paquetes y sus dependencias, será necesario recargar la configuración del servicio web:
~$ sudo systemctl reload apache2
Trabajos con Apache
Drupal es capaz de usar los módulos Expires, Headers y Rewrite de Apache, que por defecto no suelen estar activados en Debian 9. Activaremos fácilmente los módulos con el comando a2enmod:
~$ sudo a2enmod expires headers rewrite
Para hacer uso de este módulo se utilizan archivos .htaccess, pero la configuración por defecto de Apache los ignora, así que crearemos un archivo de configuración específico para la ubicación de Drupal:
~$ sudo nano /etc/apache2/conf-available/drupal.conf
Y añadiremos esta configuración:
<Directory /var/www/html/drupal> AllowOverride All </Directory>
Si estás usando un servidor virtual para el sitio Drupal, el bloque anterior debe incluirse en la configuración de dicho servidor virtual.
Pero en nuestro ejemplo, activaremos la nueva configuración con el comando a2enconf:
~$ sudo a2enconf drupal
Sólo queda reiniciar el servidor web:
~$ sudo systemctl restart apache2
Ya podemos empezar el verdadero proceso en sí de instalación de Drupal en Debian 9 accediendo desde el navegador a la URL del sitio, http://debian9.local.lan/drupal/ en este ejemplo:
Empezaremos eligiendo el idioma de la instalación y el sitio, de modo que al continuar se descargará el paquete de idioma correspondiente.
En el siguiente paso habremos de elegir el perfil de instalación, que puede ser el estándar, mínimo o de demostración:
Lo habitual es elegir el perfil estándar, que será lo que hagamos en este tutorial.
La siguiente sección debería ser una página de comprobación de requisitos, donde se mostrarían cuáles de ellos no cumple nuestro sistema. Pero si has seguido los preparativos anteriores todo estará correcto y saltaremos a la siguiente parte de la instalación, que es la conexión con la base de datos:
Introduciremos el nombre de la base de datos, el usuario y la contraseña tal y como los creamos anteriormente.
Ahora es cuando comenzará el verdadero proceso de instalación que tomará unos instantes:
Terminado el proceso, pasamos a configurar algunos datos identificativos del nuevo sitio web y la cuenta del administrador de Drupal:
Se ultimarán algunos detalles sobre las traducciones y al terminar automáticamente se abrirá la página principal del nuevo sitio Drupal con nuestra sesión iniciada:
Ahora podemos empezar a administrar y configurar nuestro sitio web, y crear comunidad y contenidos.
Post-instalación de Drupal en Debian 9 Stretch
Un ajuste de configuración bastante importante, sobre todo si el nuevo sitio Drupal está instalado en un servidor o VPS Debian 9 en Internet, es evitar ataques «HTTP HOST Header«. Para ello especificamos el dominio válido (o dominios, si el servidor Debian 9 responde a varios). Para ello editamos el archivo settings.php:
~$ sudo nano /var/www/html/drupal/sites/default/settings.php
Buscamos la sección «Trusted host configuration» y encontraremos un ejemplo de cómo especificar el dominio o dominios válidos:
... * $settings['trusted_host_patterns'] = [ * '^example\.com$', * '^.+\.example\.com$', * '^example\.org$', * '^.+\.example\.org$', * ]; ...
Fuera del bloque de comentarios añadiremos la definición, en este ejemplo para el dominio debian9.local.lan, que es el que corresponde al servidor Debian 8 sobre el que hemos instalado Drupal:
... $settings['trusted_host_patterns'] = [ '^debian9\.local.\lan$', ]; ...
Habrá que seguir el formato del ejemplo, especialmente usar ‘\.’ en lugar de ‘.’ para separar las partes del dominio.
Una vez guardados los cambios, se aplican de inmediato.
Conclusión
Ahora ya sabes cómo instalar Drupal en Debian 9 Stretch, y el proceso te habrá llevado muy pocos minutos, algo muy distinto a lo que ocurriría en caso de saltarse algún paso. Podrás aprovechar tu servidor o VPS Debian 9 para crear maravillosos sitios web con activas comunidades de usuarios.
En caso de dudas, preguntas, sugerencias, etc. puedes dejar algún comentario.
Y si al haber usado esta guía de instalación de Drupal en Debian 9 Stretch has ahorrado un tiempo precioso que usarás en crear tu sitio y quieres agradecérnoslo, puedes dejar una propina de 1 $ en PayPal:
¡Gracias!
Actualizado a la versión 9.3.8.
Gracias, colega, siempre quise tener mi propio blog.
De nada. Drupal sobre Debian 9 Stretch es un buen punto de partida.