Le fichier config.php
est le fichier de configuration de Moodle. Il est créé à l’installation de Moodle et contient une série de paramètres indispensables au fonctionnement du système : nom de la base données, chemin d’accès au répertoire moodledata
, etc. Si vous avez utilisé l’installateur de Moodle, le fichier config.php
a été généré automatiquement et contient les paramètres nécessaires. Mais saviez-vous que vous pouvez y ajouter d’autres paramètres qui pourront changer notoirement le comportement de votre Moodle, sans ajout de code ?
Pourquoi ajouter des paramètres ?
Votre interface administrateur de Moodle vous permet déjà d’adapter le comportement de Moodle à vos besoins spécifiques (si vous êtes Administrateur de votre site). Les paramètres du fichier de configuration vous permettent d’accéder à d’autres fonctionnalités, souvent plus techniques, qui ne sont pas reprises dans les pages d’administration.
Comment accéder au fichier de configuration ?
Quand vous louez un espace sur un des serveurs de votre hébergeur (OVH, O2Switch, Gandi, etc.) et que vous y installez Moodle, un ensemble de répertoire et de fichiers sont copiés sur ce serveur, à l’emplacement qui vous est réservé.
Typiquement, au même niveau que la racine de votre hébergement (html/
, web/
, htdocs/
, etc. selon votre hébergeur), le répertoire moodledata
va être créé et dans le répertoire racine, les fichiers et répertoires de Moodle vont être créés.
C’est dans ce répertoire moodle
que vous retrouverez le fichier config.php
.
Pour y accéder, vous aurez donc besoin d’un accès FTP, SFTP, ou shell au serveur et de leur identifiants de connexion. Si vous administrez vous-même votre plateforme, vous trouverez ces identifiants de connexion dans le tableau de bord de votre hébergeur.
Les composants du fichier de configuration de base
Une fois que vous avez accès au fichier config.php
par une des méthodes citées, vous pouvez l’éditer afin de l’examiner.
Le fichier config.php
qui a été configuré automatiquement contient les paramètres indispensables au bon fonctionnement de votre Moodle. Notez que vous pouvez aussi, si nécessaire, le créer manuellement.
<?php // Moodle configuration file unset($CFG); global $CFG; $CFG = new stdClass(); $CFG->dbtype = 'mysqli'; $CFG->dblibrary = 'native'; $CFG->dbhost = 'myDBserver'; $CFG->dbname = 'myDBname'; $CFG->dbuser = 'alfred'; $CFG->dbpass = 'zpfn567àéàtu'; $CFG->prefix = 'mdl_'; $CFG->dboptions = array ( 'dbpersist' => 0, 'dbport' => '', 'dbsocket' => '', 'dbcollation' => 'utf8mb4_unicode_ci', ); $CFG->wwwroot = 'https://subdomain.coussement.info'; $CFG->dataroot = '/vhosts/subdomain.coussement.info/moodledata'; $CFG->admin = 'admin'; $CFG->directorypermissions = 02777; require_once(__DIR__ . '/lib/setup.php'); // There is no php closing tag in this file, // it is intentional because it prevents trailing whitespace problems!
Détaillons les différents paramètres qui constituent ce fichier… Nous commençons par un en-tête et une initialisation :
<?php // Moodle configuration file
▶ en-tête obligatoire pour signaler au système qu’il s’agit d’un fichier PHP
unset($CFG); global $CFG; $CFG = new stdClass();
▶ initialisation de la variable $CFG, qui contiendra les paramètres de connexion au site.
Suivent ensuite la paramètres de configuration :
require_once(__DIR__ . '/lib/setup.php');
▶ appel et lecture du fichier setup.php
, qui est placé dans le répertoire lib/
. Ce fichier contrôle la consistance du fichier config.php
et, dans une certaine mesure, corrige les erreurs en attribuant par exemple des valeurs par défaut aux paramètres indispensables qui ont été oubliés.
Les paramètres optionnels
En date du 04/23, 812 paramètres existent pour le config.php
de la version 4.1 ! Ils ne sont pas tous utilisés dans le processus d’installation de Moodle et ne sont pour la majorité pas accessibles depuis l’interface d’administration. Ces paramètres vous permettent de modifier le comportement de Moodle, sans devoir changer le moindre code !
ⓘ Comment lister l’ensemble des paramètres disponibles ? En utilisant la puissance de grep ! Pour cela, placez-vous dans le répertoire où est installé votre Moodle et lancez la commande :
egrep -r -o -h '\$CFG->[a-zA-Z_][a-zA-Z0-9_]*' . | sort -k1 | uniq -c | sort -rnk1
Votre obtiendrez une liste des paramètres disponibles, classés par fréquence d’apparition dans le code. Cela vous permettra également de vérifier si le paramètre que vous souhaitez utiliser existe dans votre version de Moodle.
Je ne reprend ici qu’une quarantaine de paramètres, négligeant ceux qui ne sont utiles qu’aux designers et aux développeurs, ainsi que ceux qui sont obsolètes ou trop obscurs. Ces paramètres sont classés en ordre alphabétique. Le $CFG->
est omis dans la première colonne et est implicite.
Paramètre | Type | Explication |
admineditalways | Binary | Définir cette valeur sur true permettra aux administrateurs de modifier n’importe quelle publication à tout moment |
apacheloguser | Numeric | Détermine comment le nom de l’utilisateur est utilisé dans les journaux du serveur Web Apache. Valeurs possibles : O (fonctionnalité désactivée – valeur par défaut), 1 (enregistrer l’ID de l’utilisateur), 2 (enregistrer le nom complet au format nettoyé. c’est-à-dire que Dark Vador sera affiché comme darth_vader) et 3 (utiliser le nom de l’utilisateur) |
customfiletypes | Array | Permet de personnaliser la liste de types de fichiers pris en charge. Définissez le type de la manière suivante :$CFG->customfiletypes = array( |
– 'extension' | String | L’extension du fichier (dans l’exemple ci-dessus, cela deviendrait *.grenouille) |
– 'icon' | String | Le type d’icône à utiliser, pris dans les images disponibles dans le dossier ./pix |
– 'type' | String | Type du fichier |
– 'customdescription' | String | Description libre du fichier |
customfrontpageinclude | String | Vous permet d’utiliser votre propre version de la page d’accueil. C’est l’approche utilisée par moodle.org ! Remarquez que vous ne pouvez remplacer que la partie située entre l’en-tête et le pied. Les blocs rendus visibles le resteront également. Dans votre code, ne reprenez que la partie situées entre les balises <body> et </body> . Un exemple est proposé sur https://github.com/richardjonesnz/moodle-frontpage-insert |
customscripts | String | Permet d’utiliser des scripts en remplacement de ceux fournis avec la version de Moodle (sauf config.php). Indiquez le chemin jusqu’au répertoire que vous aurez créé et qui contiendra votre script et son chemin d’accès par-rapport à la racine de Moodle. P.ex. définir 'htdocs/customscripts/course/view.php' pour remplacer le script 'htdocs/course/view.php' . Cela permet d’adapter un script sans toucher au script original et sans passer par la technique du thème enfant |
debugusers | String | Vous pouvez spécifier une liste d’ID utilisateur séparés par des virgules, pour qui s’affichent toujours les messages de débogage |
disablemycourses | Binary | Empêche l’affichage de la page Mes cours quand un étudiant se connecte |
disableupdatenotifications | Binary | Utilisez l’indicateur suivant pour désactiver complètement les notifications de mise à jour disponibles et masquez-les de l’interface utilisateur d’administration du serveur. |
divertallemailsto | String | Détournez tous les e-mails sortants vers cette adresse pour tester et déboguer les fonctionnalités d’emailing |
divertallemailsexcept | String | Apporte une exception au précédent en définissant certaines adresses e-mail que vous souhaitez laisser passer pour les tests. Accepte une liste de regex séparés par des virgules |
emailconnectionerrorto | String | Adresse e-mail où envoyer des notifications de problèmes de connexion à la base de données |
emailconnectionerrorto | Number | Secondes pour que les fichiers restent dans les caches. Diminuez cela si vous êtes inquiet à propos des étudiants recevant des versions obsolètes des fichiers téléchargés |
filepermissions | Special | Identique à $CFG->directorypermissions mais pour les fichiers créés par Moodle |
forced_plugin_settings | Array | S’il est possible de spécifier des paramètres d’administration ici, le fait est qu’ils ne peuvent plus être modifiés via les pages de paramètres d’administration standard. Les paramètres du plugin (un thème est également un plugin !) doivent être placé dans un tableau spécial, suivant la structure : $CFG->forced_plugin_settings = array('pluginname' => array('settingname' => 'value', 'secondsetting' => 'othervalue'), Par exemple, pour changer la valeur brandcolor du thème Moove : $CFG->forced_plugin_settings = array('theme_moove' => array('brandcolor' => '#022B78')); |
forcefirstname forcelastname | String | Utilisé pour anonymiser les noms des étudiants. Si utilisé, tout utilisateur non-enseignant (minimum) verra toujours ces noms pour tous autres étudiants |
httpswwwroot | String | wwwroot pour les pages SSL. Utilisé dans le clustering de Moodle |
includeuserpasswordsinbackup | Binary | Autorisez l’inclusion de mots de passe utilisateur dans les fichiers de sauvegarde. Très dangereux dans la mesure où il publie des hachages de mot de passe qui peuvent être non chiffrés si le fichier de sauvegarde est accessible au public. Utilisez-le uniquement si vous pouvez garantir que tous vos fichiers de sauvegarde restent uniquement disponibles en toute confidentialité et ne sont jamais partagés à partir de votre site / institution! |
langlocalroot | String | Répertoire alternatif pour dataroot/lang . Utilisé dans le clustering de Moodle |
noemailever | Binary | Lorsque vous travaillez avec des données de production sur des serveurs de test, permet d’empêcher l’envoi d’email et autre notifications |
opensslcnf | String | Emplacement du fichier openssl.cnf |
preferlinesgraphs | Binary | Utilise des lignes à la place de barre dans certains graphiques (p.ex. Journaux utilisateurs) |
preventscheduledtaskchanges | Binary | Empêche le changement des tâches dans Server > Tâches programmées |
reverseproxy | Binary | Activer lors de la configuration de configurations avancées d’équilibrage de charge de proxy inverse, il peut également être nécessaire de l’activer lors de l’utilisation de la redirection de port |
showcrondebugging | Binary | Forcer le débogage au niveau du développeur et ajouter des informations de débogage à la sortie de cron |
showcronsql | Binary | Ajouter des requêtes SQL à la sortie de cron, juste avant leur exécution |
skiplangupgrade | Binary | Empêche la mise-à-jour automatique des paquetage de langue |
sslproxy | Binary | Activez cette option lors de l’utilisation d’une appliance SSL externe pour des raisons de performances. Veuillez noter que le site peut être accessible via http: ou https:, mais pas les deux ! |
supportuserid | Number | Définit le destinataire des mails adressés au Support |
themedir | String | Il est possible d’ajouter un répertoire de thèmes supplémentaires stocké en dehors de $CFG->dirroot . Ce répertoire local n’a pas besoin d’être accessible depuis Internet |
themedesignermode | Binary | Empêche la mise en cache du thème |
tracksessionip | Binary | Si ce paramètre est défini sur true , Moodle suivra l’adresse IP du utilisateur actuel pour s’assurer qu’il n’a pas changé au cours d’une session. Dans le cas contraire, les pages ne sont plus affichées. Ceci empêchera la possibilité que les sessions soient détournées via XSS, mais il engendrer des dysfonctionnements pour les utilisateurs qui utilisent des proxys qui changent tout le temps |
trashdir | String | Emplacement alternatif pour dirroot/trashdir |
upgraderunning | Binary | Prétend qu’une mise à jour de Moodle est en cours |
upgradeshowsql | Binary | Affiche les requêtes SQL pendant la mise à niveau. Veuillez noter que ce paramètre peut produire une très longue page de mise à niveau sur les grands sites |
usezipbackups | Binary | Utilise la compression ZIP à la place de TGZ pour les sauvegardes |
Conclusion
Les paramètres du config.php
permettent à l’administrateur de prendre la main sur certaines fonctionnalités de Moodle, qui ne sont pas accessibles depuis l’interface d’administration et qui peuvent rendre de grand services !
N’hésitez pas non plus à me contacter si vous avez des questions ou des commentaires sur cet article. Vous pouvez aussi poster vos questions sur notre groupe FaceBook francophone d’entraide Moodle.