Fatal error: $CFG->dataroot is not configured properly, directory does not exist or is not accessible! Exiting.

Fatal error: $CFG->dataroot is not configured properly, directory does not exist or is not accessible! Exiting.

de Francisco Arceo -
Número de respuestas: 3
Me encuentro migrando mi plataforma moodle de un servidor a otro. Utilizo la Version 2.8.8, ya cargue todos los archivos mediante ftp los cuales se distribuyen de la siguiente manera:

moodledata  '/home/usuario/web/subdominio/moodledata'
moodle '/home/ususario/web/subdminio/public_html'

en el config.php tengo

<?php  // Moodle configuration file

unset($CFG);
global $CFG;
$CFG = new stdClass();

$CFG->dbtype    = 'mysqli';
$CFG->dblibrary = 'native';
$CFG->dbhost    = 'localhost';
$CFG->dbname    = 'midbname';
$CFG->dbuser    = 'midbuser';
$CFG->dbpass    = 'midbpass';
$CFG->prefix    = 'mdl_';
$CFG->dboptions = array (
  'dbpersist' => 0,
  'dbport' => '',
  'dbsocket' => '',
);

$CFG->wwwroot   = 'subdominio';
$CFG->dataroot  = '/home/usuario/web/subdominio/moodledata';
$CFG->admin     = 'admin';

$CFG->directorypermissions = 0777;

require_once(dirname(__FILE__) . '/lib/setup.php');


// There is no php closing tag in this file,
// it is intentional because it prevents trailing whitespace problems!

ya he cambiado los permisos de las carpetas en todas las combinaciones posibles y aun asi siempre que intento ingresar me arroja el siguiente error:

Fatal error: $CFG->dataroot is not configured properly, directory does not exist or is not accessible! Exiting.

por favor ayuda!

pd: el error es solamente con el moodle porque el dominio principal con su landing page funcionan a la perfección, cabe destacar que el landing esta enlazado a la bd de moodle para la matriculación e inscripción de usuarios.
Promedio de valoraciones: -
En respuesta a Francisco Arceo

Re: Fatal error: $CFG->dataroot is not configured properly, directory does not exist or is not accessible! Exiting.

de Juan Pablo Miranda Aguayo -
Imagen de Moodlers de gran ayuda

Hola Francisco,

Según tienes la línea que define la ruta a moodledata:

$CFG->dataroot  = '/home/usuario/web/subdominio/moodledata';

lo único extraño que veo es que 'subdominio' debería ser el nombre de la carpeta donde está moodledata. A menos que ese nombre sea subdominio o hayas nombrado a la carpeta en cuestión con el nombre del subdominio que utilizas en la URL del sitio.

Por otro lado, en la línea $CFG->directorypermissions = 0777; ya te indica los permisos que debe tener moodledata.

También quizá te pudiera ser de utilidad esto: https://docs.moodle.org/all/es/Recomendaciones_de_Seguridad

Saludos

JP

En respuesta a Juan Pablo Miranda Aguayo

Re: Fatal error: $CFG->dataroot is not configured properly, directory does not exist or is not accessible! Exiting.

de Francisco Arceo -
Muchas gracias por responder Juan Pablo.

 Encontré una Solución (un poco improvisada), fue alojar la carpeta moodledata al mismo nivel del moodle. Comprendo que según las instrucciones de moodle esto representa grandes riesgos de seguridad, sin embargo coloque un archivo .htaccess en el directorio para bloquear su acceso desde el navegador (y comprobé que funcionaba).

A pesar de ello no estoy completamente seguro de que esos archivos esten completamente protegidos, y colocando la carpeta moodledata un nivel por encima del moodle no se me permite acceder (es como si mi proveedor de hosting no me diera permiso de utilizar carpetas a ese nivel).

¿debo tomar alguna medida de seguridad extra, cuál podría ser?
En respuesta a Francisco Arceo

Re: Fatal error: $CFG->dataroot is not configured properly, directory does not exist or is not accessible! Exiting.

de Juan Pablo Miranda Aguayo -
Imagen de Moodlers de gran ayuda

Hola Francisco,

Efectivamente, algunos proveedores de hosting solo te permiten escribir en una única carpeta ya accesible desde internet y no en alguna anterior no accesible. Por ejemplo, a mí, esto me ocurre en una plataforma que tengo alojada en 1and1.

Desconozco si con el archivo .htaccess que comentas es suficiente para tener cierta protección de que alguien con malas intenciones pueda inyectar código php en tus scripts de moodledata. Ten en cuenta que esa  carpeta tiene permisos de lectura y escritura para tod@s.

A ver si alguien con más experiencia nos puede dar alguna información al respecto.

Lo que sí que parece ser más seguro, según leí hace ya algún tiempo, cuando implementé algunas plataformas en 1and1, era que, aunque ambas carpetas estuvieran al mismo nivel (moodledata y moodle), se podría evitar todo acceso creando un subdominio ( misubdominio.midominio.com) de manera que apuntara a la carpeta 'moodle'. Por otro lado, la carpeta moodledata se puede renombrar al nombre que más te interese. Por ejemplo, 'miplataformadata' y luego modificar el archivo 'config.php' si ya se tiene hecha la instalación. También se puede poner el nombre que se desee durante la instalación inicial y el 'config.php' se genera con el nombre correcto de la carpeta ya que la tenemos que definir en el instalador.

Esta solución la he adoptado sin inconvenientes en varias plataformas moodle que he administrado hasta que se decidió implementar un servidor dedicado en el que no existan ese tipo de restricciones. Ahora solo me queda una plataforma en 1and1 de este modo y va funcionando correctamente.

Saludos,

JP