Gestor documental con Drupal 2/7: instalación de Drupal 11 paso a paso

El manual original instalaba Drupal 7 descomprimiendo un ZIP en WampServer. En Drupal 11 el camino recomendado es otro: Composer gestiona el código y sus dependencias, y un entorno local con DDEV sustituye a WAMP. Este capítulo deja listo un Drupal 11 en español con el sistema de ficheros privado configurado.

Requisitos

  • PHP 8.3 o superior. Drupal 11 no funciona con versiones anteriores.
  • Base de datos: MySQL 8.0 o una versión compatible de MariaDB, PostgreSQL o SQLite. La lista exacta de versiones mínimas está en la página de requisitos de drupal.org.
  • Composer 2 y acceso por línea de comandos.
  • Para el entorno local: Docker (Docker Desktop, OrbStack, Rancher Desktop o similar) y DDEV.

¿Por qué DDEV? Levanta en contenedores la misma pila que tendrá el servidor (PHP, base de datos, servidor web) sin instalar nada de eso en tu equipo, y funciona igual en Windows, macOS y Linux. Con DDEV no hace falta instalar PHP ni Composer en local: los comandos se ejecutan dentro del contenedor con el prefijo ddev.

Paso 1. Crear el proyecto

En una carpeta vacía:

mkdir gestor-documental
cd gestor-documental
ddev config --project-type=drupal11 --docroot=web
ddev start
ddev composer create-project drupal/recommended-project:^11
ddev composer require drush/drush

drupal/recommended-project es la plantilla oficial: deja el código público en web/ y las dependencias en vendor/, fuera del directorio servido. Drush es la herramienta de línea de comandos de Drupal y se usará en el resto de la guía.

Paso 2. Instalar Drupal en español

ddev drush site:install standard --locale=es --site-name="Gestor documental" --account-name=admin -y
ddev launch $(ddev drush user:login)

El perfil standard trae los módulos que usará la guía (taxonomía, vistas, ficheros, menús y bloques) y los temas Olivero para el sitio y Claro para la administración. La opción --locale=es descarga e importa la traducción al español. Si prefieres el asistente web, omite site:install y abre el sitio con ddev launch: el instalador es el mismo que en producción.

El segundo comando abre el navegador con una sesión de administrador ya iniciada. Guarda la contraseña que ha mostrado la instalación o cámbiala en /user/1/edit.

Paso 3. Configurar el sistema de ficheros privado

Es el paso más importante para un gestor documental, y hay que darlo antes de crear el campo de fichero del capítulo 4: la ubicación privada o pública de un campo no se puede cambiar cuando ya tiene datos.

Por defecto Drupal guarda los ficheros en web/sites/default/files, que el servidor web entrega directamente a quien conozca la URL, sin comprobar permisos. Los ficheros privados, en cambio, se guardan fuera de web/ y Drupal solo los entrega tras comprobar que el usuario puede ver el contenido al que pertenecen.

  1. Crea la carpeta al mismo nivel que web/:
    mkdir private
  2. Edita web/sites/default/settings.php y añade (o descomenta) la línea:
    $settings['file_private_path'] = $app_root . '/../private';
  3. Reconstruye la caché:
    ddev drush cache:rebuild
  4. Comprueba en /admin/config/media/file-system que aparece la ruta del sistema de ficheros privado.

En producción, la carpeta private tiene que estar fuera del directorio público del servidor web, y el usuario de PHP debe poder escribir en ella. Inclúyela en las copias de seguridad: la base de datos sola no basta, porque ahí solo están las referencias a los ficheros.

Paso 4. Activar los módulos del núcleo que faltan

El flujo de aprobación del capítulo 5 usa dos módulos del núcleo que el perfil standard no activa:

ddev drush pm:install content_moderation workflows -y

Los módulos contribuidos para la búsqueda se instalan en el capítulo 7, cuando hagan falta.

Paso 5. Ajustes básicos

  • Registro de usuarios: en /admin/config/people/accounts, marca que solo los administradores pueden crear cuentas. En una intranet no tiene sentido el registro abierto.
  • Zona horaria y formato de fecha: en /admin/config/regional/settings, Europe/Madrid (o la que corresponda).
  • Página principal: más adelante apuntará al listado del repositorio. Por ahora puede quedarse como está.

De local a producción

Con Composer, el despliegue consiste en llevar al servidor el código (normalmente desde un repositorio git con composer.json y composer.lock), ejecutar composer install --no-dev, importar la configuración y aplicar las actualizaciones de base de datos con Drush. Hay cuatro cosas que conviene tener resueltas desde el primer día:

  • HTTPS en todo el sitio.
  • Copias de seguridad de la base de datos y de la carpeta private, probando alguna vez que se restauran.
  • Cron: Drupal lo necesita para indexar la búsqueda y para tareas de mantenimiento. Mejor una tarea del sistema que ejecute drush cron que depender de las visitas.
  • Actualizaciones de seguridad: Drupal publica versiones de seguridad con frecuencia. composer outdated "drupal/*" muestra qué hay pendiente.

Contenido elaborado con asistencia de inteligencia artificial — Equipo Editorial Dataprix. Verifica la información antes de tomar decisiones.