Moodle guarda su configuración en dos lugares; en el fichero config.php y la base de datos. Moodle en primer lugar, lee el fichero config.php, donde se encuentra entre otras la información necesaria para poder conectarse a la base de datos y así poder leer el resto de la configuración.
Conocer este proceso y cómo modificar la configuración de Moodle mediante este fichero y mediante la base de datos es especialmente útil en ciertas ocasiones.
La configuración de Moodle, normalmente se hace con el navegador desde los menús de opciones del propio Moodle, y cunado pulsamos guardar, la configuración se guarda en la base de datos. A pesar de que la información de configuración se guarda en la base de datos, el fichero config.php tiene una importancia crucial ya que guarda la configuración principal de Moodle; guarda los datos para acceder a base de datos y los directorios donde están los ficheros de Moodle.
¿Qué podemos hacer mediante config.php?
Las opciones que se configuran mediante el fichero config.php tienen carácter permanente y quedan bloqueadas, con lo que no se pueden sobrescribir mediante los menús de configuración de Moodle y gracias a ello:
- Podemos configurar algunas opciones, de forma que nadie, ni siquiera los administradores puedan cambiarlas desde Moodle, para ello, es necesario modificar el fichero config.php directamente en el servidor.
- Podemos sobrescribir opciones que hayamos configurado mal por error cuando estas nos dejan sin acceso a Moodle. Por ejemplo esto podría ocurrir si configuramos acceso mediante https cuando nuestro servidor no lo soporta.
- Se pueden configurar opciones no disponibles desde los menús de Moodle. Las opciones adicionales disponibles son muchas aunque como es de esperar no son de uso común. Por ejemplo se encuentran opciones de seguimiento de errores, de uso de proxy inverso etc. Las opciones adicionales disponibles para config.php no se encuentran en documentación de Moodle ni en las ayudas, sino que se encuentran documentadas y comentadas con ejemplos en el fichero config-dist.php del propio Moodle.
¿Cómo acceder al fichero config.php?
Para acceder a este fichero es necesario acceder a los ficheros del servidor de Moodle. La forma de acceder depende del servidor en el que está alojado, pero normalmente se suele usar FTP o SFTP. En muchos servicios alojados también se accede a través del navegador mediante paneles como CPanel o Plesk.
Modificación de la configuración de Moodle mediante config.php
Debemos editar el fichero «config.php» del directorio raíz de Moodle. En él, debemos añadir nuevas líneas con las nuevas instrucciones de la configuración desdadas antes de la línea:
require_once(dirname(__FILE__) . '/lib/setup.php');
Utilizaremos el siguiente formato, usando una línea para cada elemento a configurar, si se trata de un elemento del núcleo de Moodle:
$CFG->NombreElemento = valor;
O este otro formato si se trata de un plugin. En este caso se trata de un formato de matriz, en que se ponen todos los valores de una vez:
$CFG->forced_plugin_settings = array('NombrePlugin' => array( 'NombreElemento-1' => 'valor-1', 'NombreElemento-2' => 'valor-2', ));
Podemos averiguar si el elemento que queremos configurar es parte del núcleo de Moodle o es un plugin así como NombreElemento y en su caso NombrePlugin para el elemento que queramos configurar desde las opciones de configuración de Moodle.
Ejemplo 1: Configuración de un Elemento del Núcleo de Moodle:
Por ejemplo, si queremos configurar y bloquear la configuración para el nombre de la plataforma, debemos acceder con el usuario de administración a nuestra plataforma y desde allí a la configuración de la página principal de Moodle yendo a:
Administrador del sitio / Servidor / Página Principal
Una vez allí, localizamos el elemento que deseamos configurar, que en este ejemplo es el nombre de la plataforma, y si observamos bien, veremos que en pequeño junto a la descripción del elemento a configurar aparece el Nombre del Elemento y del plugin en su caso:
En este caso, solamente aparece el Nombre del Elemento, por lo que se trata de un elemento del núcleo de Moodle y debemos usar el primer formato. El Nombre del Elemento es nuestro NombreElemento que en este ejemplo es fullname. Si por ejemplo queremos poner como nombre «Integra Sistemas Abiertos», usaremos la siguiente instrucción:
$CFG->fullname = "Integra Sistemas Abiertos";
Ejemplo 2: Configuración de un Plugin de Moodle:
Por otro lado, si por ejemplo deseamos cambiar los ajustes por defecto del curso en la plataforma, debemos acceder a su configuración desde el propio Moodle a:
Administrador del sitio / Cursos / Ajustes por defecto del curso
Y allí fijarnos en las opciones que deseamos cambiar y bloquear.
Como podemos ver, en este otro caso, aparece tanto el Nombre del Plugin como el Nombre del Elemento, por lo que se trata de un plugin y debemos usar el segundo formato. Por ejemplo si queremos configurar el curso por defecto a «Formato por Temas» y el número máximo de secciones «15», usaremos la siguiente instrucción:
$CFG->forced_plugin_settings = array('moodlecourse' => array(
'format' => 'topics',
'maxsections' => '15',
));
En este ejemplo, se puede ver que el valor señalado en rojo, debe ser averiguado ya que no coincide con el texto mostrado en el desplegable. Para ello usaremos la opción «Inspeccionar Elemento» del navegador Chrome. Si pulsamos con el botón derecho sobre el desplegable donde se elige el formato del curso y en el menú que aparece pulsamos Inspeccionar elemento, aparecerá a la derecha el código HTML y podremos ver el valor real que debemos poner en la instrucción; es el elemento «value» que aparece dentro de <option> que a su vez está dentro de <select>.
Y eso es todo, una vez guardado el fichero config.php, se reflejarán los cambios. Usando este método, podemos configurar tantos elementos como queramos.
¿Cómo podemos modificar la configuración con MySQL?
También podemos usar otro método para modificar la configuración de Moodle, que es cambiar los valores de las tablas de la base donde Moodle guarda la configuración. Al contrario que los cambios hechos con el fichero config.php, los cambios en la base de datos no son persistentes y se pueden cambiar desde el administrador de Moodle. El uso de configuraciones desde la base datos por otro lado es muy útil para guardar conjuntos de configuraciones y copias de seguridad de las configuraciones de Moodle.
Como ya dijimos antes, en el proceso de carga Moodle primero lee el fichero config.php y después lee la configuración de la base de datos. La configuración guardada en la base de datos, se almacena en dos tablas, «mdl_config» para la configuración del núcleo de Moodle y «mdl_config_plugins» para la configuración de los plugins.
Por tanto para modificar la configuración de la base datos, tan solo deberemos actualizar los valores de los registros de esas tablas.
Modificación de la configuración de Moodle mediante MySQL
Para ello necesitamos conectarnos a nuestra base de datos MySQL con cualquier herramienta de gestión como por ejemplo MySQL WorkBench o mediante el panel de control del gestor del alojamiento. Una vez conectados, tal solo tendremos que ejecutar las instrucciones UPDATE necesarias para modificar los registros conforme a este formato si se trata de un elemento del núcleo de Moodle:
UPDATE mdl_config SET value = 'valor' WHERE name LIKE 'NombreElemento';
O conforme a este otro formato si se trata de un plugin:
UPDATE mdl_config_plugins SET value = 'valor' WHERE plugin LIKE 'NombrePlugin' AND name LIKE 'NombreElemento';
Podemos ver, al igual que cuando usamos el fichero config.php para modificar la configuración, necesitamos conocer NombrePlugin, NombreElemento y el valor para los elementos que queramos modificar, y estos se obtienen exactamente de la misma forma que antes.
Ejemplos: Configuración de Plugins y Elementos del Núcleo de Moodle con MySQL:
Por ejemplo, usando los mismos ejemplos de antes, para modificar el nombre de la plataforma usaremos la siguiente instrucción:
UPDATE mdl_config SET value = 'Integra Sistemas Abiertos' WHERE name LIKE 'fullname';
Y para modificar los datos por defecto de un curso usaremos las siguientes instrucciones:
UPDATE mdl_config_plugins SET value = 'topics' WHERE plugin LIKE 'moodlecourse' AND name LIKE 'format'; UPDATE mdl_config_plugins SET value = '15' WHERE plugin LIKE 'moodlecourse' AND name LIKE 'maxsections';
Conclusiones
La configuración de Moodle, no solo se puede hacer desde los menús de administración del propio Moodle, sino que también pueden hacerse teniendo acceso de administrador al alojamiento de la plataforma mediante el fichero de configuración «config.php» y mediante «MySQL» modificando la configuración directamente en la base de datos.
Las opciones que se configuran mediante el fichero config.php tienen carácter permanente y quedan bloqueadas, con lo que no se pueden sobrescribir mediante los menús de configuración de Moodle y gracias a ello:
- Podemos configurar opciones, de forma que nadie, ni siquiera los administradores puedan cambiarlas desde Moodle.
- Podemos sobrescribir opciones que hayamos configurado mal por error cuando estas nos dejan sin acceso a Moodle, pudiendo así recuperar el funcionamiento de nuestro servidor.
- Se pueden configurar opciones no disponibles desde los menús de Moodle.
Por otro lado, el uso de MySQL para la modificación de la configuración de Moodle es sobre todo útil a la hora de guardar copias de seguridad de una configuración de Moodle o a la hora de modificar una configuración cuando por un error en la configuración la plataforma no funciona.
hola soy nuevo en éste tema, intento editar el archivo config.php, pero al ingresar a el me dice
warning: no write permission
algún comentario o solución se les agradecería mucho
No te esta permitiendo modificar el fichero config.php por temas de permisos.
¿Cómo lo estás intentando modificar, FTP, CPanel, etc.?
Si accedes desde FTP, debes asegurarte de usar una cuenta con permisos de escritura.