Error: Fatal error: $CFG->dataroot ¿Qué es y cómo solucionarlo? Imprimir

  • 0

Ver un mensaje que empieza con la palabra "Fatal error" en tu pantalla puede asustar a cualquiera, pero no te preocupes. Si tu sitio web en Moodle se ha interrumpido y muestra un error relacionado con `$CFG->dataroot`, estás ante uno de los fallos más comunes y fáciles de solucionar de esta plataforma.

Este problema suele aparecer repentinamente después de realizar una migración de hosting, de cambiar el nombre de usuario de tu cPanel o tras una actualización del sistema.

En esta guía te explicamos qué significa exactamente este error y cómo resolverlo paso a paso en pocos minutos.

¿Qué es el "$CFG->dataroot" y por qué falla?

En la arquitectura de Moodle, existen dos carpetas principales:

  1. La carpeta pública: Es donde están los archivos del programa (la que usualmente instalas en public_html).

  2. La carpeta de datos (generalmente llamada moodledata): Aquí es donde Moodle guarda de forma segura todas las tareas que suben tus alumnos, las fotos de perfil, las calificaciones y los archivos temporales de caché.

Por seguridad, esta segunda carpeta nunca debe estar dentro de public_html (para evitar que cualquier persona acceda a las tareas por internet).

El parámetro `$CFG->dataroot` es simplemente la línea de código dentro de tu archivo de configuración (config.php) que le indica a Moodle la ruta física absoluta dentro del disco duro del servidor para encontrar esa carpeta moodledata.

Si Moodle te muestra este error, significa una de tres cosas:

  • La ruta escrita en tu configuración es incorrecta (el servidor busca la carpeta en un lugar donde no existe).

  • La carpeta moodledata fue eliminada o no se subió durante una migración.

  • El servidor no tiene permisos de escritura para abrir o modificar esa carpeta.

Paso a paso para solucionar el error

Sigue este procedimiento en orden para diagnosticar y corregir el fallo en tu cuenta de cPanel:

1. Encuentra la ruta absoluta real de tu hosting: Paso 1.

Inicia sesión en tu cPanel. En la columna lateral derecha, busca el apartado Información general (General Information) y localiza el campo llamado Directorio principal (Home Directory).

Allí verás tu ruta absoluta, que suele ser algo como /home/usuario123 (donde "usuario123" es tu nombre de usuario de cPanel). Anota este dato.

2. Abre el archivo config.php de Moodle: Paso 2.

Dirígete al Administrador de Archivos de cPanel, entra a la carpeta donde instalaste tu Moodle (usualmente public_html) y busca el archivo llamado config.php.

Haz clic derecho sobre él y selecciona Edit (Editar).

3. Verifica y corrige la línea de dataroot: Paso 3.

Busca una línea de código que se vea similar a esta:

$CFG->dataroot = '/home/usuario_viejo/moodledata';

Compara esa ruta con la que anotaste en el Paso 1. Si el nombre de usuario no coincide, corrígelo para que apunte a tu directorio actual. Por ejemplo:

$CFG->dataroot = '/home/usuario123/moodledata';

Guarda los cambios en el editor.

4. Asegúrate de que la carpeta existe: Paso 4.

En tu administrador de archivos, sube un nivel de carpetas (ve al directorio raíz /home/usuario123/).

Verifica si realmente existe una carpeta llamada moodledata. Si no la encuentras por ninguna parte, créala haciendo clic en el botón + Carpeta (New Folder) y asígnale exactamente ese nombre.

5. Corrige los permisos de la carpeta: Paso 5.

Moodle necesita permisos totales de escritura moodledata para guardar las tareas de tus alumnos.

Haz clic derecho sobre la carpeta moodledata, selecciona Chmod o Change Permissions (Cambiar permisos) y asígnale el código de permiso 755 (o 770) En entornos Cpanel modernos esto otorga a Moodle los permisos de lectura y escritura necesarios sin comprometer la seguridad. Guarda los cambios.

Nota de seguridad: Evita asignar permisos 777, ya que dejarían la carpeta y los datos de tus alumnos expuestos públicamente.

¿El error persiste? Revisa el "open_basedir".

Si aplicaste todos los pasos anteriores y sigues viendo el error, es muy probable que se deba a una directiva de seguridad de PHP llamada open_basedir.

Esta función bloquea al servidor para que ningún script de tu web pueda "mirar" fuera de la carpeta public_html. Como tu carpeta moodledata está un nivel más arriba (por seguridad), el sistema la bloquea y arroja el error de $CFG->dataroot.

Cómo solucionarlo en cPanel:

  1. Ve a tu cPanel y busca la herramienta Editor INI de MultiPHP (MultiPHP INI Editor).

  2. Selecciona tu dominio en el menú desplegable.

  3. Busca la directiva open_basedir y asegúrate de dejar su valor completamente vacío (o desactiva el interruptor si estás usando la versión básica).

  4. Haz clic en Aplicar.

¿Te resulta muy complicado modificar el archivo de configuración?

No pongas en riesgo los archivos de tu plataforma académica. Si no estás seguro de cómo corregir la ruta absoluta o los permisos de tu moodledata, abre un ticket de soporte indicándonos el dominio de tu Moodle y nuestro equipo técnico se encargará de configurar tu archivo config.php correctamente.

 


¿Le ha resultado útil esta respuesta?

« Atrás