Fatal error: $CFG->dataroot is not configured properly, directory does not exist or is not accessible! Exiting.
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.
Re: Fatal error: $CFG->dataroot is not configured properly, directory does not exist or is not accessible! Exiting.
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
Re: Fatal error: $CFG->dataroot is not configured properly, directory does not exist or is not accessible! Exiting.
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?
Re: Fatal error: $CFG->dataroot is not configured properly, directory does not exist or is not accessible! Exiting.
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