Informática y Software Práctico

XAMPP instalar Drupal entorno: el error de la carpeta sites

Post actualizado el día octubre 29, 2026 by DeiviSanzPlay

Cuando intentas XAMPP instalar Drupal entorno local, el fallo más común no está en la descarga ni en la base de datos: aparece al mover la carpeta drupal dentro de htdocs y abrir http://localhost/drupal. La pantalla de instalación carga, pero al llegar al paso de la base de datos o al guardar la configuración, Drupal devuelve un error de permisos o una página en blanco. No es un problema de Drupal ni de XAMPP por separado; es cómo se combinan la ruta de instalación y el archivo de configuración.

Por qué falla la ruta en htdocs

Drupal guarda la ruta base en sites/default/settings.php y en la tabla variable de la base de datos. Si instalas en htdocs/drupal, el base_url queda como /drupal. Muchos tutoriales de XAMPP instalar Drupal entorno omiten que, si luego renombras la carpeta o accedes por 127.0.0.1 en lugar de localhost, Drupal genera enlaces rotos y el instalador de temas falla con un 404 silencioso. Lo he visto en instalaciones de Drupal 10 con XAMPP en Windows 11: el instalador completa, pero el backend muestra CSS roto porque la ruta de los archivos públicos apunta a una URL que no coincide.

La solución exacta: instala en una carpeta sin espacios ni mayúsculas, por ejemplo htdocs/drupal10, y accede siempre con la misma forma de host que usarás después. Si vas a trabajar con localhost, no mezcles con 127.0.0.1 en el navegador. Para Drupal, la coherencia del host importa más que la velocidad de Apache.

Permisos de escritura: el bloqueo silencioso

En Linux y macOS, XAMPP ejecuta Apache como el usuario daemon o nobody. La carpeta sites/default/files debe ser escribible por ese usuario, no solo por ti. Si creas la carpeta manualmente con mkdir, hereda tus permisos y el instalador de Drupal se detiene al crear el archivo .htaccess de protección. El síntoma típico: el paso de «Configurar el sitio» se queda cargando y luego lanza un error de «No se pudo crear el directorio».

Un caso concreto: en un XAMPP sobre Ubuntu, tras copiar Drupal a /opt/lampp/htdocs, el instalador no pasaba del 60 % hasta ejecutar chown -R daemon:daemon sites/default/files. No basta con chmod 777; de hecho, ese permiso amplio puede romper el .htaccess que Drupal genera. Usa el propietario correcto y permisos 755 para carpetas y 644 para archivos.

La base de datos: nombre, usuario y puerto

XAMPP trae MariaDB en el puerto 3306, pero si tienes otro MySQL instalado en el sistema, el puerto puede estar ocupado y XAMPP arranca MariaDB en 3307 sin avisar de forma clara. Durante la instalación de Drupal, el campo «Servidor de la base de datos» debe incluir el puerto si no es el estándar: localhost:3307. Si dejas solo localhost, Drupal intenta conectar al 3306 y falla con «No se puede conectar con la base de datos».

Otro detalle que se pasa por alto: el usuario root de XAMPP suele no tener contraseña en local, pero Drupal exige un usuario con permisos de creación de tablas. Funciona, aunque no es recomendable para un entorno que luego migrarás. Crea un usuario específico drupal_user con permisos sobre una base de datos drupal_local y evitas sorpresas al exportar.

Cuándo XAMPP no es la opción adecuada

XAMPP instalar Drupal entorno funciona para pruebas puntuales y para aprender la interfaz de administración. No lo recomiendo para desarrollo con Composer y Drush, porque XAMPP no incluye Composer ni PHP-CLI configurado con las extensiones que Drupal 10 exige (GD, OPcache, intl). Puedes añadirlas, pero el esfuerzo supera el de usar DDEV o Lando, que ya integran la configuración. Si tu objetivo es solo ver el instalador y trastear con temas, XAMPP es suficiente; si vas a versionar código y ejecutar actualizaciones, el entorno se queda corto.

La documentación oficial de Drupal y las notas de XAMPP coinciden en un punto: el instalador web no valida todas las extensiones PHP hasta el último paso. Revisa php.ini antes de empezar y activa extension=gd y extension=intl. Sin ellas, la instalación se completa pero los estilos de imagen y las traducciones fallan después, y eso confunde más que un error temprano.


Sobre el autor: DeiviSanzPlay — Soy David Sanz, Editor y Responsable de Contenidos. Mi trabajo consiste en revisar, corregir y mejorar los contenidos de este blog para que la información sea clara, útil y esté bien estructurada. Trabajo con diferentes temáticas y verticales, por lo que una parte importante de mi día a día es analizar cada contenido, cuidar la redacción y asegurar que el lector encuentre información de calidad. Me gusta prestar atención a los detalles. Desde una corrección de estilo hasta la organización de un artículo, todo cuenta cuando se trata de crear contenidos que realmente aporten valor y sean fáciles de entender. En este blog encontrarás artículos sobre diferentes temas y sectores. Mi responsabilidad es cuidar y supervisar cada contenido para que mantenga unos estándares de calidad y ofrezca una buena experiencia a quien nos visita. Porque para mí, un buen contenido no consiste únicamente en escribir. También hay que revisar, contrastar, ordenar y pensar en la persona que está al otro lado de la pantalla.

Perfiles verificables: Sitio web

Publicado el 29 de October de 2026. Última revisión: 29 de October de 2026.