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:
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
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.
- Crea la carpeta al mismo nivel que
web/:mkdir private - Edita
web/sites/default/settings.phpy añade (o descomenta) la línea:$settings['file_private_path'] = $app_root . '/../private'; - Reconstruye la caché:
ddev drush cache:rebuild - Comprueba en
/admin/config/media/file-systemque 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 cronque 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.
