17. Variables du config.php¶
Certaines des options de configuration ne peuvent pas être fixées dans l’interface d’administration du site mais doivent être gérées dans le fichier config.php
. Dans cette section sont décrites les différentes variables qu’ils est possible d’utiliser ainsi que les raisons pour lesquelles vous devriez placer certaines d’entre-elles dans le fichier config.php
.
Note
Certaines options de configuration ont leur équivalent dans les paramètres de la zone Administration. Si en plus vous fixez une valeur pour la même option dans le fichier config.php
, cette dernière prendra le dessus sur la valeur indiquée dans la zone Administration; de plus, la rubrique ne pourra plus être modifiée depuis cette zone.
Le fichier config.php``se trouve dans le dossier ``/htdocs
de votre site. Si vous désirez afficher toutes les variables possibles et leurs valeurs fixées par défaut, vous les trouverez dans /htdocs/lib/config-defaults.php
. Les valeurs par défaut ne devraient pas être modifiées dans le fichier config-defaults.php
mais vous pouvez surcharger celle-ci en copiant la variable et changeant sa valeur lorsque vous la collez dans config.php
.
17.1. Anatomie d’une variable de configuration¶
Une variable de configuration doit être écrite en respectant scrupuleusement sa syntaxe sinon le paramètre ne sera pas pris en compte. Dans Mahara, la syntaxe est toujours $cfg->variable = valeur;
.

Variable de configuration classique¶
$cfg-> : Signifie « configuration » et indique que ce qui suit est une variable de configuration.
variable = : C’est à cet endroit que vous indiquez le nom de la variable à définir. Généralement ce nom est composé d’un seul mot ou de plusieurs mots reliés avec un trait de soulignement. Le nom des variables ne peut pas contenir d’espace ou de caractères diacritiques.
valeur : On indique ici la valeur que l’on désire placer dans la variable. Cette valeur peut prendre différentes formes, par exemple :
« true » ou « false » pour activer respectivement désactiver l’option
du texte
des chiffres
un chemin d’accès
Note
Si vous désirez modifier la valeur par défaut d’une variable dans votre installation de Mahara, copiez-la depuis le fichier config-defaults.php
et collez-la dans config.php
. De cette manière vous conservez la valeur par défaut et surtout la valeur que vous donnez à la valeur sera conservée après une mise à jour de votre installation. Si config-defaults.php
peut être modifié par une mise à jour ou une réinstallation de Mahara, config.php
n’est jamais touché.
17.2. developermode: Active ou désactive le mode développeur¶
$cfg->developermode = true;
ou $cfg->developermode = false;
Lorsque vous activez le mode développeur, les deux changements suivants sont automatiquement faits à votre site :
debug.css
est inclus à chaque page. Vous pouvez ajouter vos propres règles CSS à ce fichier.
Note
developermode=true
est moins puissant que productionmode=false.
17.3. directorypermissions: Permissions à utiliser dans le dossier racine (dataroot)¶
$cfg->directorypermissions = 0700;
(défault)
Vous pouvez fixer les permissions d’accès à utiliser pour les fichiers et dossiers contenus dans le dossier de données (dataroot) de Mahara. La valeur par défaut ne donne le droit à l’utilisateur attribué au service web que de lire le contenu du dossier de données. Si vous êtes sur un serveur mutualisé et que vous désirez pouvoir téléverser des documents dans votre dossier de données plus tard, par exemple pour effectuer des sauvegardes, utilisez la valeur 0755. Dans tous les autres cas il est conseillé de laisser la valeur par défaut.
17.4. error_reporting: Type d’erreur à rapporter¶
$cfg->error_reporting = E_ALL & ~E_STRICT;
(défault)
Ce paramètre indique le niveau d’erreur qu’il convient d’archiver dans l’historique de Mahara. Il est passé directement à la fcontion PHP error_reporting();
.
Note
Il existe des limitations concernant cette méthode car elle n’est lancée qu’après un certain nombre d’autres scripts aient été compilés : init.php, config.php, config-defaults.php, errors.php
, ainsi que tous les fichiers invoqués dans l’URL. De ce fait, les erreurs de compilation dans ces fichiers seront tout de même taitées même avec ce paramètre.
17.5. externallogin: Login via another site¶
$cfg->externallogin = 'URL';
You can overwrite the normal Mahara login page by providing an external one. This is useful if all people with access to the site shall log in via a different system and should be redirected there automatically.
Note
Be careful when you have multiple institutions turned on. If at least one institution does not log in via the same external login page, you cannot use this setting as people in that institution would not be able to log in to Mahara at all since they can never get to the login page that they need.
If you use the external login, you may need to override it at times, e.g. for troubleshooting the external authentication method or when it is not reachable. You can add a parameter at the end of the Mahara URL. You are then taken to the normal Mahara login screen.
The parameter is ?override=true
For example, https://mahara.example.com/admin/users/search.php ?override=true
Note
It doesn’t matter what value you add. You can use « true » or « 1 » or anything else.
17.7. isolatedinstitutions: Separate institutions entirely¶
$cfg->isolatedinstitutions = false;
(default) or $cfg->isolatedinstitutions = true;
If you have a multi-tenanted Mahara instance but do not want people from the individual institutions to communicate on the site or share groups, you can turn on « Isolated institutions ».
This can be beneficial when you set up a large site for several organisations and need to adhere to privacy regulations that don’t allow people from one organisation to contact people from other organisations.
Voir aussi
See the section « Isolated institutions » for more information.
17.8. log_backtrace_levels : Niveau de journalisation¶
Par exemple: $cfg->log_backtrace_levels = LOG_LEVEL_WARN | LOG_LEVEL_ENVIRON;
(défault)
Le niveau de journalisation à partir du quel les erreurs sont journalisées. Ceci est utilie notamment dans les phases de développement et de test, mais probablement qu’une généralisation de niveaut “alere” (warning) est suffisante pour un site en production.
17.9. log_backtrace_print_args: Journaliser l’historique des traces¶
$cfg->log_backtrace_print_args = null;
(défault)
Imprime les valeurs d’une fonction et les paramètres de la méthode lors de l’impression d’une séquence en marche arrière. Ceci est utile pour le déboguage, mais cela comporte des risques de sécurité car les paramètres affichés peuvent comprendre des informations sensibles comme des mots de passe ou des clés privées.
La valeur null
indique à Mahara de masquer les valeurs des arguements quand $cfg->productionmode
est activé ou des les afficher dans le cas contraire. Une valeur true
ou false
indique à Mahara de toujours ou jamais masquer les valeurs de l’argument sans préoccuper de la valeur de ´´$cfg->productionmode``.
17.10. log_file : Fichier contenant les messages d’erreur.¶
$cfg->log_file = '/chemein/vers/dossier_donnees/erreurs.log';
Si vous utilisez le paramètre LOG_TARGET_FILE, c’est alors dans ce fichier que seront stockés les messages d’erreur. PAr défaut, ceux-ci sont journalisés dans le fichier error.log
dans le dossier de données (dataroot). Si vous modifiez cela dans le fichier config.php, assurez-vous que le fichier choisi soit dans un dossier accessible en écriture par l’utilisateur de votre service web.
17.11. log targets: Destination des informations de journalisation¶
Valeurs standards dans une environnement de production :
$cfg->log_dbg_targets = LOG_TARGET_ERRORLOG;
$cfg->log_info_targets = LOG_TARGET_ERRORLOG;
$cfg->log_warn_targets = LOG_TARGET_ERRORLOG;
Environnement standard hors production
$cfg->log_dbg_targets = LOG_TARGET_SCREEN | LOG_TARGET_ERRORLOG;
$cfg->log_info_targets = LOG_TARGET_SCREEN | LOG_TARGET_ERRORLOG;
$cfg->log_warn_targets = LOG_TARGET_SCREEN | LOG_TARGET_ERRORLOG;
$cfg->log_environ_targets = LOG_TARGET_SCREEN | LOG_TARGET_ERRORLOG;
Il existe 4 différents types de messages de journalisation que vous pouvez enregistrer ou afficher à l’écran :
dbg: Messages de déboguage
info: Information
warn: Message d’alerte
environ: Erreurs d’environnement
Vous pouvez journaliser les messages de différente nature dans différentes destinations :
LOG_TARGET_SCREEN : Affiche les messages d’erreur sur l’écran. Cette option est intéressante notamment durant les moments de développement et de test, toutefois il convient de ne pas l’activer sur un site en production.
LOG_TARGET_ADMIN : Affiche les messages d’erreur sur l’écran, mais seulement lorsque vous vous trouvez dans la zone d”Administration.
LOG_TARGET_ERRORLOG : Envoie les messages d’erreur dans le fichier qui est spécifié dans vote configuration du serveur Apache. Il est recommandé d’utiliser cette option pour tous les niveaux de journalisation, quelles que soient les autres cibles d’affichage des messages que vous avez définies.
LOG_TARGET_FILE: Cette option vous permet de nommer le fichier qui sera utilisé pour journaliser chaque message. Il convient de choisir un chemin vers un dossier dans le dossier des données de Mahara (dataroot), mais faites attention, car ce fichier tend à devenir particulièrement volumineux avec le temps. Il est alors envisageable de créer à l’aide de scripts un système de rotation des fichiers si vous désirez laisser cette option active tout le temps. L’autre option consiste à n’activer cette option que lorsque vous désirez ne capture qu’une seule erreur particulière ou si vous souhaitez réellement avoir l’historique de toutes les erreurs rencontrées, mais que vous savez que ce fichier ne deviendra pas trop lourd avec le temps.
Vous pouvez combinez les paramètres avec le signe de l’opération OU. Exemple : LOG_TARTGET_SCREEN | LOG_TARGE_ERRORLOG
.
17.12. noreplyaddress: L’adresse systeme de votre plateforme¶
$cfg->noreplyaddress = 'nopasrepondre@votredomaine';
Set the system mail address. Notifications are sent from this address (except for a few emails when a person doesn’t yet have an account). You can also set it in Administration menu → Configure site → Site options → Email settings.
Normalement cette adresse n’est pas consultée par l’administrateur et donc il convient de ne pas répondre aux messages envoyés avec celle-ci.
17.13. openbadgedisplayer_source : Sources pour le plug-in d’affichage des Badges ouvertes (Open Badges)¶
$cfg->openbadgedisplayer_source = '{"nomCourt":"url","nomCourt":"url"}';
In order to display Open Badges in the « Open Badges » block, the sites that host the badges need to be configured. Per default, the Mozilla Backpack and the Open Badge Passport can be connected. If you have other sources, you would need to add them to the allowed sources.
Badgr can be configured as well.
The configuration variable for The Backpack, the Open Badge Passport, and Badgr looks like the following:
$cfg->openbadgedisplayer_source = '{"backpack":"https://backpack.openbadges.org/","passport":"https://openbadgepassport.com/","badgr":"https://api.badgr.io/"}';
17.14. passwordsaltmain : Défini un mot de passe global de salage pour le site¶
$cfg->passwordsaltmain = 'votre phrase secrète';
Le salage en cryptographie permet d’éviter des attaques pour entrer de manière non autorisée sur votre site. Le salage est une méthode qui ajoute à l’envoi d’un mot de passe une suite de caractère fixée dans un paramètre du site et connu que de l’administrateur de celui-ci. Ceci évite, si un mot de passe a été volé ou déterminé par des méthodes d’analyse fréquentielle qu’il puisse être utilisé tant que le pirate ne connaît pas la phrase de salage. En utilisant une phrase dans le paramètre « passwordsaltmain » permet à Mahara d’améliorer la sécurité de cryptage de ceux-ci dans la base de données, en plus de les rendre encore plus aléatoires.
Si vous ne fixer pas une phrase de salage, une alerte sera affiché à chaque fois que vous accédez sur la « Page d’accueil » site en tant qu’administrateur.
17.15. pathtoclam : Chemin d’accès au logiciel antivirus ClamAV¶
$cfg->pathtoclam = '/chemin/vers/votre/clamscan';
Si vous avez installé le logiciel antivirus ClamAV sur votre serveur et que vous n’avez pas défini de recherche de virus au niveau global du système, vous pouvez indiquer à Mahara où trouver le programme. Les fichiers qui seront téléversés seront alors contrôlés par ClamAV avant d’être effectivement disponibles. Pour des raisons de sécurité, le chemin d’accès à ClamAV doit être indiqué dans le fichier config.php
pour éviter qu’une personne qui aurait accès à l’interface d’administration du site puisse modifier ou désactiver l’antivirus.
Vous pouvez contrôler que le chemin a bien été défini dans les « Paramètres de sécurité ».
17.16. probationenabled : Donne aux utilisateurs un statut de probation¶
$cfg->probationenabled = true;
ou $cfg->probationenabled = false;
Si vous mettez $cfg->probationenabled = true;
, vous devriez aussi mettre quelque chose comme $cfg->probationstartingpoints = 2;
.
Vous pouvez fixer un niveau de probation pour éviter que des utilisateurs qui se sont enregistrés par eux-mêmes sur votre site ne viennent que pour polluer les forums avec du pourriel. Ceci est souvent un problème rencontré sur les site publics. Utilisez les deux variables suivantes pour vous en prémunir :
$cfg->probationenabled = true;
: Ce paramètre active la possibilité de mettre des utilisateurs en phase de probation.$cfg->probationstartingpoints = 2;
: Cette option fixe le nombre de points de probation qu’un nouvel utilisateur auto-inscrit reçoit par défaut. Dans cet exemple, les utilisateurs reçoivent deux points qu’ils doivent faire disparaître avant d’être à même de participer aux activités de groupe, d’échange et de communication dans Mahara.
You can change the probation points individually on the user’s account settings page displayed by clicking on a person’s username in Administration menu → User → User search.
Lorsque vous activé la probation antispam, les personnes qui laissent des commentaires sur la page ou sous une production et qui ne sont pas authentifiés, ne peuvent pas y inclure des URL.
17.17. productionmode: Active ou désactive le site en mode production¶
$cfg->productionmode = true;
ou $cfg->productionmode = false;
Si le mode production est désactivé, un message est affiché au haut de l’écran pour vous en informer.

message d’information quand le site n’est pas en mode production¶
Un ensemble de paramètres sont surchargé par des valeurs pertinentes pour des phases de test et de développement du site. Pour une information plus approfondie sur ces paramètres, veuillez accéder à ìnit.php`. Cette configuration comprend :
Impression de débogage, informations et messages d’alerte, ainsi que des informations sur le contexte et les journaux des erreurs. Ceci permet de rapidement accéder aux messages d’erreur puisqu’ils apparaissent directement sur l’écran.
Activez le mode développeur.
Déactiver les caches.
Note
Bizarrement, vous devez mettre productionmode=true
si vous voulez régler finement vos parmètres du site lors des tests/développement, car le paramètre productionmode=false
surchage un grand nombre de paramètres de configuration, pour les mettre à des valeurs par défaut utiles aux programmeurs.
17.18. remoteavatarbaseurl : URL du serveur d’avatars distant¶
$cfg->remoteavatarbaseurl = 'https://example.com/avatar/';
L’image du profil de vos utilisateurs peut être obtenu depuis un service comme Gravatar. Si vous hébergez votre propre service, comme par exemple Libravatar, vous pouvez faire pointer Mahara directement sur ce service à l’aide de cette variable de configuration.
Vous décidez dans les Préférences de l’utilisateur si l’avatar distant doit être affiché ou non.
17.19. renamecopies : Renommer les pages et les collections dupliquées¶
$cfg->renamecopies = true;
ou $cfg->renamecopies = false;
L’administrateur du site peut décider de faire automatiquement commencer le nom des pages et collections dupliquées par « Copie de… » en utilisant la variable $cfg->renamecopies = true;
. La valeur par défaut est $cfg->renamecopies = false;
.
17.20. sendemail: Envoie tous les emails à une seule adresse¶
$cfg->sendemail = true;
ou $cfg->sendemail = false;
Choisissez si vous désirez envoyer des courriels depuis votre instance de Mahara. Si l’option est désactivée, Mahara n’enverra aucun message électronique. Ceci est particulièrement utile dans les moment où votre Mahara n’est pas en mode de production mais en mode de test mais avec des données réelles et que vous ne voulez pas envoyer des emails aux utilisateurs de cette instance.
17.21. sendallemailto: Envoie tous les courriels à cette seule adresse¶
$cfg->sendallemailto = 'vous@votredomaine';
Vous pouvez utiliser ce paramètre pour vous faire envoyer tous les courriels générés par votre Mahara au lieu qu’il partent vers les vrais destinataires, ceci par exemple à des fins de tests des fonctions de messagerie. Vous devez toutefois laisser le paramètre $cfg->sendemail = true;
si vous désirez utiliser cette fonction.
Utilisez cette option pour déboguer un problème avec l’envoi de messages depuis Mahara ou pour tester une nouvelle fonctionnalité avec des vraies données sans que les utilisateurs ne reçoivent des courriels que vous désirez pas leur voir envoyés.
17.22. sessionhandler : Sélectionnez le gestionnaire de sessions¶
$cfg->sessionhandler = 'file';
ou $cfg->sessionhandler = 'memcached';
ou $cfg->sessionhandler = 'redis';
Mahara supports three different session handlers:
stockage de fichiers
Memcached
Redis
Il est recommandé d’utiliser Memcached ou Redis pour des gros sites car les données sont accédées de manière plus rapide. Redis fonctionne mieux dans un environnement en grappes de serveurs.
À la fois Memcached et Redis nécessitent que de nouvelles variables de configuration soient fixées. À ce sujet veuillez vous référer au lien /htdocs/lib/config-defaults.php
pour plus d’information.
17.23. showloginsideblock : Affiche ou cache le bloc permettant de se connecter au Mahara¶
$cfg->showloginsideblock = true;
ou $cfg->showloginsideblock = false;
Vous pouvez masquer le formulaire de connexion en plaçant $cfg->showloginsideblock=false;``dans votre fichier ``config.php
. Lorsque cela est fait, seul un lien vers le formulaire de connexion apparaîtra sur la page d’accueil pour les administrateurs et les utilisateurs ayant un comptes interne.

Lien vers le formulaire de connexion¶
Cette option est utile lorsque vous effectuez la connexion à Mahara par un autre site distant (sso).
Par défaut, la valeur est fixée à « vrai » et le bloc de connexion est donc affiché.
17.24. sitethemeprefs : Choisir son thème de navigation parmi tous les thèmes¶
$cfg->sitethemeprefs = true;
ou $cfg->sitethemeprefs = false;
Si l’administrateur du site l’autorise, vous pouvez choisir un thème, depuis les « Préférences utilisateur », pour naviguer dans votre portfolio. De ce fait vous n’êtes pas forcé d’utiliser le thème de votre institution, ou si vous êtes membres de plusieurs, de choisir parmi les thèmes fixes de chacune d’entre-elles.
17.25. skins : Habillage¶
$cfg->skins = true;
ou $cfg->skins = false;
Vous pouvez permettre aux utilisateurs de personnaliser l’apparence de leurs portfolios en plus du thème. Ceci se fait par l’ajout ou la création d’un habillage dans Mahara. Les habillages peuvent être créés de de manière globale au niveau du site, ou par des individus. Les institutions peuvent permettre ou interdire l’utilisation des habillages à leurs utilisateurs.
17.26. urlsecret : Ne permet de lancer le cron ou de mettre à jour Mahara que si vous y êtes autorisé¶
$cfg->urlsecret = 'unpetitsecret';
Sans cette variable de configuration, n’importe qui peut lancer le cron (tâches programmées) sur votre site ou une mise à jour qui pourrait potentiellement poser problèmes.
Placez cette variable dans votre fichier config.php
pour surcharger la valeur par défaut. Choisissez votre propre phrase secrète (mettez-la entre deux apostrophes) que seul un nombre restreint de personnes connaîtra. Vous ne pourrez lancer le cron ou une mise à jour depuis le navigateur qu’en connaissant la phrase secrète.
A chaque fois que vous voulez lancer manuellement le cron ou faire une mise à jour, vous devez ajouter la phrase secrète à la fin de l’URL. Les URL pour lancer le cron ou la mise à jour se présentent comme suit (remplacer « unpetitsecret » par votre mot ou phrase secrète) :
cron : /lib/cron.php?urlsecret=unpetitsecret
upgrade : /admin/upgrade.php?urlsecret=unpetitsecret
Note
Lorsque vous travaillez sur une version de test du serveur qui se trouver derrière un part-feu, vous ne devriez pas utiliser tout le temps la fonction des URL secrètes, spécialement si vous êtes le seul à utiliser le serveur. Vous devriez alors mettre le paramètre $cfg->urlsecret=null;
dans le fichier config.php
et éviter par là la nécessité d’avoir une phrase secrète à entrer. Toutefois, vous ne devriez pas utiliser cette fonction pour un site en production qui est accessible par d’autres utilisateurs.
17.27. usersuniquebyusername : Le nom d’utilisateur stocké dans Mahara a la préemption sur celui qui permet de se connecter depuis une méthode d’authentification distante.¶
$cfg->usersuniquebyusername = true;
ou $cfg->usersuniquebyusername = false;
Il s’agit d’une fonctionnalité expérimentale. Quand cette option est activée, cela signifie que quelle que soit le nom d’utilisateur du système d’authentification externe utilisé par une personne, elle se connectera sur le même compte que l’utilisateur a enregistré dans la base de données de Mahara; alors le nom d’utilisateur distant est remplacé par celui de la base de données interne à Mahara.