En esta entrada veremos cómo instalar Drupal en Debian 8 Jessie paso a paso, de modo que puedas disponer de este veterano CMS para ofrecer contenido web desde tu viejo servidor o VPS Debian.
Tabla de contenidos
Antes de instalar Drupal en Debian 8 Jessie
Para completar los pasos de esta guía de instalación de Drupal en Debian 8 Jessie será necesario partir de unos requisitos mínimos:
- Una instalación de Debian 8 Jessie convenientemente actualizada.
- Un entorno o pila tipo LAMP (servicio web con PHP y bases de datos).
- Acceso a línea de comandos con un usuario con permisos de sudo (o root en su defecto).
- Conexión a Internet.
En caso de que aún no dispongas del entorno necesario te puede interesar consultar nuestra guía de instalación de la pila LAMP en Debian 8 Jessie o la guía de instalación de PostgreSQL en Debian 8 Jessie.
Por otro lado, puedes integrar Drupal en el servicio web de Debian 8 de varias formas, ya sea el sitio principal, ya sea un servidor virtual, etc. En este tutorial integraremos Drupal como parte del sitio web principal. Aunque por motivos didácticos en este tutorial trabajamos sobre HTTP, lo adecuado es trabajar sobre HTTPS.
Cómo descargar Drupal para Debian 8 Jessie
Vamos a descargar Drupal para Debian 8 Jessie desde la página de descargas del proyecto, donde encontraremos la última versión dispnonible en paquetes con los formatos .zip y .tar.gz:
Podemos realizar la descarga directamente desde el navegador o, como en este caso, desde consola con la herramienta wget:
~$ wget https://www.drupal.org/download-latest/tar.gz -O drupal.tar.gz
Cómo instalar Drupal en Debian 8 Jessie
Para instalar Drupal en Debian 8 Jessie debemos seguir una serie de pasos con la realización de ciertas tareas para preparar el sistema, de modo que el instalador web de Drupal corra finalmente sin encontrar obstáculos. Veamos estos pasos a continuación.
Archivos de Drupal
Descomprimimos el paquete que acabamos de descargar en la ubicación que nos interese con vistas a la forma de integrar la aplicación en el servicio web:
~$ sudo tar xf drupal.tar.gz -C /var/www/
Como la carpeta que se crea contiene números de versión en su nombre, es buena idea crear un enlace simbólico sin números para facilitar la configuración y mantenimiento:
~$ sudo ln -s /var/www/drupal-9.X.X/ /var/www/drupal
Debes especificar en el comando anterior el nombre del directorio que corresponda a la versión de Drupal que hayas descargado.
Drupal necesita escribir en algunas de sus carpetas, por lo que cambiamos la propiedad de sus archivos al usuario con el que corre el servicio web en Debian 8:
~$ sudo chown -R www-data:www-data /var/www/drupal/
Servicio web
Drupal tiene cierto enfoque hacia Apache como servicio web, haciendo uso de módulos como Headers, Rewrite y Expires, mediante configuraciones en archivos .htaccess, características todas ellas desactivadas por defecto en Debian 8 Jessie.
Comenzaremos activando los módulos:
~$ sudo a2enmod headers rewrite expires
Creamos una configuración de Apache para Drupal que haga navegable la aplicación:
~$ sudo nano /etc/apache2/sites-available/drupal9.conf
El contenido será un alias que utilizaremos para acceder a Drupal y la activación del uso de archivos .htaccess en el directorio de la aplicación:
Alias /drupal /var/www/drupal <Directory /var/www/drupal> AllowOverride all </Directory>
Guardamos los cambios y cerramos el archivo.
Si hemos integrado Drupal en el servicio web accesible en una ruta, como /drupal, en lugar de en un dominio o subdominio, editaremos el archivo .htaccess de la aplicación:
~$ sudo nano /var/www/drupal/.htaccess
Buscaremos esta directiva:
... # RewriteBase /drupal ...
La activaremos eliminando el carácter # inicial:
... RewriteBase /drupal ...
Guardamos los cambios.
Es el momento de activar la configuración:
~$ sudo a2ensite drupal9.conf
Y reiniciamos el servicio web para aplicar todos estos cambios:
~$ sudo systemctl restart apache2
PHP
Drupal exige la presencia en Debian 8 Jessie de ciertas extensiones que instalaremos desde los repositorios de la distribución, por lo que actualizamos las listas de paquetes:
~$ sudo apt update
E instalamos las extensiones necesarias:
~$ sudo apt install -y php-gd php-mbstring php-xml
Hay que asegurarse de disponer de la extensión para conectar con el servicio de bases de datos que usemos. En el caso de MariaDB/MySQL:
~$ sudo apt install -y php-mysql
O en el caso de PostgreSQL:
~$ sudo apt install -y php-pgsql
Terminada la instalación de las extensiones y sus dependencias aplicaremos los cambios recargando la configuración del servicio web:
~$ sudo systemctl reload apache2
Base de datos
Para su funcionamiento Drupal se apoya sobre el sistema de bases de datos que tengamos funcionando en Debian 8 Jessie. En este tutorial prepararemos los dos más usados y soportados por Drupal.
PostgreSQL
Creamos un rol con contraseña:
~$ sudo -u postgres createuser -P drupal9
Y su correspondiente base de datos:
~$ sudo -u postgres createdb drupal9 -O drupal9
MariaDB/MySQL
Conectamos al servicio con el cliente de consola mysql y un usuario administrador:
~$ mysql -u root -p
Creamos la base de datos:
> create database drupal9 character set utf8mb4 collate utf8mb4_unicode_ci;
Si se trata de MariaDB o MySQL 5 creamos el usuario de la forma habitual:
> create user drupal9@localhost identified by 'XXXXXXXX';
Aunque si trabajamos con MySQL 8 especificamos el plugin de conexión adecuado:
> create user drupal9@localhost identified with mysql_native_password by 'XXXXXXXX';
Concedemos los permisos necesarios al usuario sobre la base:
> grant all privileges on drupal9.* to drupal9@localhost;
Y cerramos la conexión:
> exit
Instalador web
Es el momento de acceder al instalador web de Drupal en Debian 9 desde un navegador.
Por ejemplo, la máquina Debian 8 que hemos utilizado para este artículo es accesible en el subdominio o nombre DNS debian8.local.lan, y hemos creado el alias /drupal, por lo que utilizaremos http://debian8.local.lan/drupal como URL de acceso:
En la primera página del instalador elegimos el idioma y continuamos.
El siguiente paso será seleccionar el perfil de instalación:
Normalmente el perfil estándar es el recomendable, pero si necesitas otro seguramente sabrás cuál es.
A continuación debería mostrarse una página de verificación de requisitos, pero si has seguido los pasos anteriores se cumplirán todos, y el instalador saltará al siguiente paso.
Para configurar el servicio de bases de datos el instalador mostrará un formulario:
Introduciremos base de datos, usuario y contraseña tal como los creamos en pasos anteriores. El proceso es similar para los distintos sistemas de bases de datos que admite Drupal.
Continuamos y comenzará todo el proceso de inicialización de la base de datos, instalación de módulos y componentes, traducciones, etc.
Terminada esta parte del proceso será el momento de configurar el nuevo sitio Drupal:
Proporcionaremos los datos para la identificación del sitio y para crear el usuario administrador.
El instalador completa la actualización de traducciones y finaliza el proceso de instalación, mostrando automáticamente la página principal de Drupal con la sesión iniciada:
Y ya está todo listo para empezar a crear contenido web con Drupal en Debian 8 Jessie.
Tareas de post-instalación
Drupal ofrece un sistema de seguridad para impedir problemas de seguridad como «HTTP Host header spoofing«, permitiendo sólo el acceso a la aplicación usando los dominios deseados.
Para realizar este ajuset editamos el archivo de configuración settings.php:
~$ sudo nano /var/www/drupal/sites/default/settings.php
Buscaremos la sección de código para la variable trusted_host_patterns:
... * Trusted host configuration. ... * $settings['trusted_host_patterns'] = [ * '^example\.com$', * '^.+\.example\.com$', * '^example\.org$', * '^.+\.example\.org$', * ]; ...
Podemos ver un ejemplo de cómo configurar esta variable.
Como en nuestro ejemplo la URL de acceso es http://debian8.local.lan/drupal, el dominio sería debian8.local.lan, que es lo que especificaremos en este ajuste. Por tanto añadiríamos un bloque similar al siguiente:
... $settings['trusted_host_patterns'] = [ '^debian8\.local\.lan$', ]; ...
El nombre del servidor se especifica como expresión regular, por lo que los puntos deben ir precedidos por el carácter «\». El carácter «^» significa «que empiece por» y el carácter «$» por su parte significa «que acabe por«.
Además, este ajuste es realmente una lista, así que si la máquina Debian 8 es accesible desde distintos dominios y quieres que Drupal permita ser accedido desde los mismos, puedes añadirlos dentro del bloque, separándolos por comas.
Una vez guardado el archivo, los cambios se aplican de inmediato.
Conclusión
Ahora que sabes cómo instalar Drupal 9 en Debian 8 Jessie ya puedes disfrutar de la última versión estable de este conocido CMS, de modo que podrás desplegar vistoso contenido web fácilmente.
En caso de dudas, preguntas, sugerencias, etc. puedes dejar algún comentario.
Y si has ahorrado un tiempo precioso gracias esta guía de instalación de Drupal en Debian 8 Jessie y quieres agradecérnoslo ayudando al mantenimiento de este sitio y la creación de nuevos tutoriales, puedes hacerlo dejando una propina de tan solo 1 $ en PayPal:
O, si te sientes especialmente generoso, invitándome a un café:
¡Gracias!