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

Variable de configuration classique

  1. $cfg->: Stands for “configuration” and indicates that what follows is a configuration variable.

  2. 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.

  3. 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” or “false”

    • 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)

You can set what permissions are used for files and directories in the Mahara dataroot. The default allows only the web server account to read the data. If you are on shared hosting and might want to download the contents of your dataroot later, e.g. for backup purposes, set this to 0755. Otherwise, leave it as is.

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 : Connexion via un autre site

$cfg->externallogin = 'URL';

Vous pouvez remplacer la page de connexion normale de Mahara par une page externe. Ceci est utile si toutes les personnes ayant accès au site doivent se connecter via un système différent et doivent y être redirigées automatiquement.

Note

Faites attention lorsque vous avez plusieurs institutions activées. Si au moins une institution ne se connecte pas via la même page de connexion externe, vous ne pouvez pas utiliser ce paramètre car les personnes de cette institution ne seraient pas en mesure de se connecter à Mahara puisqu’elles ne pourraient jamais atteindre la page de connexion dont elles ont besoin.

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.

Le paramètre est ?override=true

Par exemple, https://mahara.exemple.fr/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.6. insecuredataroot: Partager le même dossier racine (dataroot) avec un autre Mahara

$cfg->insecuredataroot = false; (défault) ou $cfg->insecuredataroot = true;

You can enforce checking that files that are served have come from dataroot. You would only want to turn this on if you were running more than one Mahara against the same dataroot. If you are doing that, make sure you create separate dataroots for each installation, but symlink the artefact directory from all of them to one of them, and turn on “insecuredataroot” on all the ones for which you created symlinks.

17.7. isolatedinstitutions: Separate institutions entirely

$cfg->isolatedinstitutions = false; (par défaut) ou $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”.

Cela peut s’avérer utile lorsque vous mettez en place un grand site pour plusieurs organisations et que vous devez respecter les règles de confidentialité qui ne permettent pas aux personnes d’une organisation de contacter les personnes d’autres 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';

Définissez l’adresse de messagerie du système. Les notifications sont envoyées à partir de cette adresse (sauf pour quelques courriels lorsqu’une personne n’a pas encore de compte). Vous pouvez également définir cette adresses dans Menu Administration → Configurer le site → Options du site → Paramètres de messagerie.

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.

La variable de configuration pour le sac à badge de Mozilla, de l’Open Badge Passport, et de Badgr ressemble à ce qui suit :

$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';

A password salt helps “hash” passwords more securely in the database to make hacking them more difficult. Using a phrase is a good start. Passwords are already not displayed in plain text in the database, they are hashed. The salt helps randomise that even more.

If you don’t have a password salt set, you see a warning on the “Admin home” page.

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.

You can see the path that has been set in the “Security settings”.

17.16. probationenabled: Give people probation status

$cfg->probationenabled = true; ou $cfg->probationenabled = false;

Si vous mettez $cfg->probationenabled = true;, vous devriez aussi mettre quelque chose comme $cfg->probationstartingpoints = 2;.

You can set a spam probation level for your account holders to prevent self-registered ones from posting spam especially on a public site. Use the following two variables to do that:

  • $cfg->probationenabled = true;: This setting decides whether people can be put on probation.

  • $cfg->probationstartingpoints = 2;: This setting determines how many probation points a newly self-registered person has per default. In this example, people would get two probation points that they need to get rid off before all functionality is available to them.

You can change the probation points individually on the person’s account settings page displayed by clicking on a person’s username in Administration menu → People → People 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

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://exemple.ch/avatar/';

Profile pictures of your account holders can be pulled from an avatar service such as Gravatar. If you run your own service. e.g. Libravatar, you can point Mahara directly to it with this configuration variable.

You decide in the “Account settings” whether remote avatars can be displayed or not.

17.19. renamecopies : Renommer les pages et les collections dupliquées

$cfg->renamecopies = true; ou $cfg->renamecopies = false;

The site administrator can decide to add “Copy of…” for copied pages and collections. If $cfg->renamecopies = true;, copies of new pages and collections will have “Copy of” prepended to their titles. The default setting is $cfg->renamecopies = false;.

17.20. new in Mahara 20.04 saml_log_attributes: Log SAML attributes

$cfg->saml_log_attributes = false; (default) or $cfg->saml_log_attributes = true;

When the connection between Mahara and an SSO IdP needs to be investigated, it helps to see what attributes are being sent from the IdP. By setting this variable to “true”, the attributes are logged into the table “usr_login_saml”.

Avertissement

Once the diagnostics have been performed and the problem fixed, set this variable back to “false” and clear the table.

17.21. sendemail: Envoie tous les emails à une seule adresse

$cfg->sendemail = true; ou $cfg->sendemail = false;

Decide whether you want to send emails from your instance of Mahara. If set to false, Mahara will not send any emails. This is useful when setting up a non-production instance of Mahara with real data where you don’t want to accidentally send email to people from this particular Mahara instance.

17.22. 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.

This setting is handy for test instances when you want to replicate an issue or test a new feature with real data, but do not want people to receive notifications accidentally.

17.23. sessionhandler : Sélectionnez le gestionnaire de sessions

$cfg->sessionhandler = 'file'; ou $cfg->sessionhandler = 'memcached'; ou $cfg->sessionhandler = 'redis';

Mahara supporte trois gestionnaires de session différents :

  • 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.24. showloginsideblock : Affiche ou cache le bloc permettant de se connecter au Mahara

$cfg->showloginsideblock = true; ou $cfg->showloginsideblock = false;

You can hide the login form by adding the value $cfg->showloginsideblock = false; to your config.php file. Once you have done that, only a link to the login form is displayed for an administrator or others with internal Mahara accounts to log into the site.

Lien vers le formulaire de connexion

Lien vers le formulaire de connexion

Cette option est utile lorsque vous effectuez la connexion à Mahara par un autre site distant (sso).

Per default, the value is set to “true” so that the login sideblock is displayed.

17.25. sitethemeprefs : Choisir son thème de navigation parmi tous les thèmes

$cfg->sitethemeprefs = true; ou $cfg->sitethemeprefs = false;

If the site administrator allowed it, you can choose any theme that is available to you as your browse theme on your “Account settings” page. In that case, you are not restricted to only use your institution theme or if you are a member of multiple institutions choose between them.

17.26. skins : Habillage

$cfg->skins = true; ou $cfg->skins = false;

You can allow your portfolio authors to personalise their portfolio pages beyond choosing a theme. This is done via skins in Mahara. Skins can be created on the site level or by individuals. Institutions can allow or deny the use of skins for their members.

17.27. 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.

Whenever you want to run the cron or perform an upgrade, you need to add your secret word at the end of the URL. The URLs for the cron and the upgrade look like this then (replace “somesecret” with your own secret word):

  • 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.28. new in Mahara 20.04 usepdfexport: PDF export

$cfg->usepdfexport = true; or $cfg->usepdfexport = false;

Note

This is an experimental feature.

It is possible to allow the export of entire accounts or individual pages and collections into PDFs. This requires additional software to be installed on the server, which can be done by running make pdfexport.

In addition, the “usepdfexport” option in the config.php file needs to be set as it does require additional software.

Once the software has been installed and the PDF export allowed in the config file, portfolios are exported as PDFs besides HTML and Leap2A.

17.29. 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;

This is an experimental feature. When turned on, this setting means that it does not matter which other application the a person SSOs from, they will be given the same account in Mahara as the internal username is matched and the remote username ignored.

17.30. new in Mahara 20.04 validfiletypes: Restrict which file types can be uploaded

$cfg->validfiletypes = 'doc,docx,gif,jpeg,jpg,mp3,mp4,odt,pdf,png,zip'; (for example)

You can restrict which file types account holders can upload to the platform. This gives you control over the files that you allow, and which ones are not considered safe to upload.

When there is a file type restriction in place, this is mentioned in the file upload area.

See which file types you can upload if there is a restriction in place

See which file types you can upload if there is a restriction in place