« Débogage » : différence entre les versions

De MoodleDocs
Aller à :navigation, rechercher
(Nouveau codage)
m (ajout capture d'écran)
 
Ligne 1 : Ligne 1 :
Les messages de débogage peuvent être activés par un administrateur depuis ''Administration > Administration du site > Développement > Débogage''.
Les messages de débogage peuvent être activés par un administrateur depuis ''Administration > Administration du site > Développement > Débogage''.
 
[[Fichier:capture d'écran.jpg|alt=capture d'écran|vignette|capture d'écran]]
Les messages de débogage sont destinés à aider à diagnostiquer les problèmes et / ou à aider les développeurs de Moodle. Si vous rencontrez un problème avec votre site Moodle et demandez de l'aide dans un forum Moodle.org, on peut vous demander d'activer les messages de débogage afin de localiser la cause du problème. Par défaut, Moodle n'affiche aucun message d'erreur. Si vous rencontrez des problèmes (par exemple, des écrans vides ou des écrans incomplets), activer le débogage est généralement la première chose à faire.
Les messages de débogage sont destinés à aider à diagnostiquer les problèmes et / ou à aider les développeurs de Moodle. Si vous rencontrez un problème avec votre site Moodle et demandez de l'aide dans un forum Moodle.org, on peut vous demander d'activer les messages de débogage afin de localiser la cause du problème. Par défaut, Moodle n'affiche aucun message d'erreur. Si vous rencontrez des problèmes (par exemple, des écrans vides ou des écrans incomplets), activer le débogage est généralement la première chose à faire.
== Paramètres de débogage ==
== Paramètres de débogage ==
Voici les paramètres de la page de débogage :
Voici les paramètres de la page de débogage :
=== Messages de débogage ===
=== Messages de débogage ===
La valeur par défaut est "Aucun", vos choix sont les suivants :
La valeur par défaut est "Aucun", vos choix sont les suivants :
;AUCUN : Ne pas afficher d'erreurs ou d'avertissements (par défaut)
;AUCUN : Ne pas afficher d'erreurs ou d'avertissements (par défaut)
;MINIMAL : Afficher uniquement les erreurs fatales
;MINIMAL : Afficher uniquement les erreurs fatales
Ligne 14 : Ligne 11 :
;TOUT : Afficher tous les messages de débogage PHP
;TOUT : Afficher tous les messages de débogage PHP
;DÉVELOPPEUR : Messages de débogage supplémentaires pour les développeurs
;DÉVELOPPEUR : Messages de débogage supplémentaires pour les développeurs
Il y a rarement un avantage à aller au niveau développeur, à moins d'être un développeur, auquel cas c'est fortement recommandé.
Il y a rarement un avantage à aller au niveau développeur, à moins d'être un développeur, auquel cas c'est fortement recommandé.


Une fois que vous avez obtenu le message d'erreur, et l'avez copié et collé quelque part, il est '''fortement recommandé''' de remettre l'affichage à '''Aucun''' : les messages de débogage peuvent donner des indices à un pirate informatique quant à la configuration de votre site.
Une fois que vous avez obtenu le message d'erreur, et l'avez copié et collé quelque part, il est '''fortement recommandé''' de remettre l'affichage à '''Aucun''' : les messages de débogage peuvent donner des indices à un pirate informatique quant à la configuration de votre site.
=== Afficher les informations de débogage ===
=== Afficher les informations de débogage ===
Il y a une option pour choisir d'afficher les messages d'erreur ou simplement les enregistrer dans les logs du serveur.
Il y a une option pour choisir d'afficher les messages d'erreur ou simplement les enregistrer dans les logs du serveur.
=== Débogage de l'envoi des courriels ===
=== Débogage de l'envoi des courriels ===
Détermine l'affichage d'informations de débogage détaillées lors de l'envoi de courriels au serveur SMTP.
Détermine l'affichage d'informations de débogage détaillées lors de l'envoi de courriels au serveur SMTP.
==== Plus d'outils pour le débogage des courriels sortant ====
==== Plus d'outils pour le débogage des courriels sortant ====
Vous pouvez également utiliser le fichier [[Fichier de configuration|config.php]] pour activer d'autres «outils» qui vous aideront à déboguer les courriels sortants (et la configuration du serveur SMTP) :
Vous pouvez également utiliser le fichier [[Fichier de configuration|config.php]] pour activer d'autres «outils» qui vous aideront à déboguer les courriels sortants (et la configuration du serveur SMTP) :
* Rediriger tous les courriels sortants vers une adresse spécifique :
* Rediriger tous les courriels sortants vers une adresse spécifique :
<syntaxhighlight lang="php">
<syntaxhighlight lang="php">
Ligne 35 : Ligne 25 :
// $CFG->divertallemailsto = 'root@localhost.local'; // NOT FOR PRODUCTION SERVERS!
// $CFG->divertallemailsto = 'root@localhost.local'; // NOT FOR PRODUCTION SERVERS!
</syntaxhighlight>
</syntaxhighlight>
* Activer le débogage de [[Cron|CRON]] et exécutez le script cron.php en [[Administration en ligne de commande|ligne de commande]].
* Activer le débogage de [[Cron|CRON]] et exécutez le script cron.php en [[Administration en ligne de commande|ligne de commande]].
<syntaxhighlight lang="php">
<syntaxhighlight lang="php">
Ligne 45 : Ligne 34 :
vous@serveur-moodle(/var/www/html/moodle)# php admin/cli/cron.php
vous@serveur-moodle(/var/www/html/moodle)# php admin/cli/cron.php
</syntaxhighlight>
</syntaxhighlight>
* Activez le débogage SMTP détaillé et envoyez le résultat sur le fichier système error_log (via modification de code) :
* Activez le débogage SMTP détaillé et envoyez le résultat sur le fichier système error_log (via modification de code) :
Comme [https://moodle.org/mod/forum/discuss.php?d=316222#p1289850 suggéré] sur une discussion de forum, ouvrez [https://github.com/moodle/moodle/blob/master/lib/moodlelib.php#L5573 lib/moodlelib.php] (ligne 5573 pour Moodle 3.2), cherchez la partie comportant <code>if (!empty($CFG->debugsmtp))</code> et modifiez la pour ajouter <code>$mailer->Debugoutput = "error_log";</code>.
Comme [https://moodle.org/mod/forum/discuss.php?d=316222#p1289850 suggéré] sur une discussion de forum, ouvrez [https://github.com/moodle/moodle/blob/master/lib/moodlelib.php#L5573 lib/moodlelib.php] (ligne 5573 pour Moodle 3.2), cherchez la partie comportant <code>if (!empty($CFG->debugsmtp))</code> et modifiez la pour ajouter <code>$mailer->Debugoutput = "error_log";</code>.
Ligne 56 : Ligne 44 :
</syntaxhighlight>
</syntaxhighlight>
Vous trouverez plus d'informations sur les paramètres [https://github.com/moodle/moodle/blob/master/lib/phpmailer/class.phpmailer.php#L314 SMTPDebug] et [https://github.com/moodle/moodle/blob/master/lib/phpmailer/class.phpmailer.php#L328 Debugoutput].
Vous trouverez plus d'informations sur les paramètres [https://github.com/moodle/moodle/blob/master/lib/phpmailer/class.phpmailer.php#L314 SMTPDebug] et [https://github.com/moodle/moodle/blob/master/lib/phpmailer/class.phpmailer.php#L328 Debugoutput].
===Débogage des requêtes SQL===
===Débogage des requêtes SQL===
Vous pouvez ajouter (activer) l'une des options suivantes de dboptions dans votre fichier de configuration config.php, qui enregistre différents types de requêtes SQL dans la table mdl_log_queries table :
Vous pouvez ajouter (activer) l'une des options suivantes de dboptions dans votre fichier de configuration config.php, qui enregistre différents types de requêtes SQL dans la table mdl_log_queries table :
Ligne 62 : Ligne 49 :
* '''logslow''' - enregistre les requêtes durant plus qu'un nombre spécifique de secondes (les nombres à virgule sont acceptés)
* '''logslow''' - enregistre les requêtes durant plus qu'un nombre spécifique de secondes (les nombres à virgule sont acceptés)
* '''logerrors''' - enregistre les requêtes en erreur
* '''logerrors''' - enregistre les requêtes en erreur
Exemple complet :
Exemple complet :
<syntaxhighlight lang="php">
<syntaxhighlight lang="php">
Ligne 71 : Ligne 57 :
);
);
</syntaxhighlight>
</syntaxhighlight>
=== Informations de performance ===
=== Informations de performance ===
L'option informations de performance détermine si les informations de performance seront incluses dans le pied de page du thème standard (et d'autres thèmes). L'information sur la performance comprend le temps de chargement de la page, la quantité de mémoire utilisée pour générer la page, l'utilisation du processeur, la charge et le ratio d'utilisation de mémoire cache d'enregistrement.
L'option informations de performance détermine si les informations de performance seront incluses dans le pied de page du thème standard (et d'autres thèmes). L'information sur la performance comprend le temps de chargement de la page, la quantité de mémoire utilisée pour générer la page, l'utilisation du processeur, la charge et le ratio d'utilisation de mémoire cache d'enregistrement.
Ligne 85 : Ligne 70 :


Pour cacher les informations de performance aux utilisateurs ordinaires, lisez la discussion [https://moodle.org/mod/forum/discuss.php?d=358032 Performance info only for admins?] (en anglais).
Pour cacher les informations de performance aux utilisateurs ordinaires, lisez la discussion [https://moodle.org/mod/forum/discuss.php?d=358032 Performance info only for admins?] (en anglais).
=== Afficher l'origine des chaînes de caractères ===
=== Afficher l'origine des chaînes de caractères ===
Permet d'aider à la [[Traduction|traduction]] et la [[Personnalisation_de_la_langue|personnalisation de la langue]]. Parfois le code <code>?strings=1</code> doit être ajouté (s'il n'y a pas déjà de paramètre), ou <code>&strings=1</code> (après d'autres paramètres). Voir l'article Wikipedia [http://en.wikipedia.org/wiki/Query_string Chaîne de requête] pour plus de détails.
Permet d'aider à la [[Traduction|traduction]] et la [[Personnalisation_de_la_langue|personnalisation de la langue]]. Parfois le code <code>?strings=1</code> doit être ajouté (s'il n'y a pas déjà de paramètre), ou <code>&strings=1</code> (après d'autres paramètres). Voir l'article Wikipedia [http://en.wikipedia.org/wiki/Query_string Chaîne de requête] pour plus de détails.
=== Afficher les liens de validation W3C ===
=== Afficher les liens de validation W3C ===
Soyez prudent, lisez l'avertissement.
Soyez prudent, lisez l'avertissement.
=== Afficher les informations sur la page ===
=== Afficher les informations sur la page ===
Pour afficher les informations de page dans le pied de page.
Pour afficher les informations de page dans le pied de page.
== Que faire si vous n'arrivez pas à obtenir la page d'administration du débogage ==
== Que faire si vous n'arrivez pas à obtenir la page d'administration du débogage ==
Si l'erreur vous empêche même d'ouvrir la page d'administration permettant d'activer le débogage, vous pouvez l'activer manuellement.  
Si l'erreur vous empêche même d'ouvrir la page d'administration permettant d'activer le débogage, vous pouvez l'activer manuellement.  
=== Essayez de saisir l'URL directe ===
=== Essayez de saisir l'URL directe ===
Les paramètres de débogage se trouvent à l'URL <code><nowiki>http://.../admin/settings.php?section=debugging</nowiki></code> sur votre serveur. Parfois, cette URL fonctionnera, même si les pages que vous devez utiliser pour y arriver (par exemple la page d'accueil du site) ne fonctionnent pas. Cela vaut donc la peine d'essayer de saisir cette URL directement.
Les paramètres de débogage se trouvent à l'URL <code><nowiki>http://.../admin/settings.php?section=debugging</nowiki></code> sur votre serveur. Parfois, cette URL fonctionnera, même si les pages que vous devez utiliser pour y arriver (par exemple la page d'accueil du site) ne fonctionnent pas. Cela vaut donc la peine d'essayer de saisir cette URL directement.
=== Dans le fichier config.php ===
=== Dans le fichier config.php ===
Dans le [[Fichier de configuration|fichier de configuration]] config.php, vous pouvez insérer quelques lignes en utilisant les informations de la Section 7 du fichier config-dist.php pour activer le débogage pour tout le monde, ou l'activer uniquement pour certains utilisateurs.
Dans le [[Fichier de configuration|fichier de configuration]] config.php, vous pouvez insérer quelques lignes en utilisant les informations de la Section 7 du fichier config-dist.php pour activer le débogage pour tout le monde, ou l'activer uniquement pour certains utilisateurs.


Voila ce que l'on trouve en Section 7 du fichier config-dist.php :
Voila ce que l'on trouve en Section 7 du fichier config-dist.php :
<syntaxhighlight lang="php">
<syntaxhighlight lang="php">
//=========================================================================
//=========================================================================
Ligne 122 : Ligne 100 :
// $CFG->debugusers = '2';
// $CFG->debugusers = '2';
</syntaxhighlight>
</syntaxhighlight>
Pensez à enlever (ou commenter, avec // en début de ligne) ces lignes lorsque vous avez fini de diagnostiquer votre problème.
Pensez à enlever (ou commenter, avec // en début de ligne) ces lignes lorsque vous avez fini de diagnostiquer votre problème.


'''ATTENTION''' : n'essayez pas de modifier la table de base de données de configuration directement ; cela ne fonctionnera pas car les valeurs sont mises en cache dans MUC !
'''ATTENTION''' : n'essayez pas de modifier la table de base de données de configuration directement ; cela ne fonctionnera pas car les valeurs sont mises en cache dans MUC !


Par exemple, vous pouvez ajouter au fichier ''moodle/config.php'' ces lignes pour activer le mode débogage pour développeur :
Par exemple, vous pouvez ajouter au fichier ''moodle/config.php'' ces lignes pour activer le mode débogage pour développeur :
 
<syntaxhighlight lang="php">
<syntaxhighlight lang="php">
$CFG->debug = 32767;  
$CFG->debug = 32767;  
$CFG->debugdisplay = 1;
$CFG->debugdisplay = 1;
</syntaxhighlight>
</syntaxhighlight>
Les différentes valeurs possibles (de "pas de débogage" à "développeur") sont : 0, 5, 15, 30719 et 32767.
Les différentes valeurs possibles (de "pas de débogage" à "développeur") sont : 0, 5, 15, 30719 et 32767.
Dans les versions plus anciennes de Moodle, on pouvait utiliser pour valeur 2047 ou 6143.
Dans les versions plus anciennes de Moodle, on pouvait utiliser pour valeur 2047 ou 6143.


Pour désactiver le débogage, utilisez la page d'administration, ou utilisez la valeur 0 pour debug et debugdisplay.
Pour désactiver le débogage, utilisez la page d'administration, ou utilisez la valeur 0 pour debug et debugdisplay.
=== Dans la base de données ===
=== Dans la base de données ===
Si vous n'avez '''vraiment pas d'autre solution''' (pas d'accès au fichier de configuration, ni à votre plateforme), vous pouvez utiliser un accès direct à la base (en ligne de commande), ou un outil comme phpMyAdmin, pour exécutez les commandes SQL suivantes :
Si vous n'avez '''vraiment pas d'autre solution''' (pas d'accès au fichier de configuration, ni à votre plateforme), vous pouvez utiliser un accès direct à la base (en ligne de commande), ou un outil comme phpMyAdmin, pour exécutez les commandes SQL suivantes :
<syntaxhighlight lang="sql">
<syntaxhighlight lang="sql">
UPDATE mdl_config SET value = 32767 WHERE name = 'debug';
UPDATE mdl_config SET value = 32767 WHERE name = 'debug';
UPDATE mdl_config SET value = 1    WHERE name = 'debugdisplay';
UPDATE mdl_config SET value = 1    WHERE name = 'debugdisplay';
</syntaxhighlight>
</syntaxhighlight>
Pour désactiver le débogage, utilisez la page d'administration, ou les commandes suivantes :
Pour désactiver le débogage, utilisez la page d'administration, ou les commandes suivantes :
<syntaxhighlight lang="sql">
<syntaxhighlight lang="sql">
UPDATE mdl_config SET value = 0 WHERE name = 'debug';
UPDATE mdl_config SET value = 0 WHERE name = 'debug';
UPDATE mdl_config SET value = 0 WHERE name = 'debugdisplay';
UPDATE mdl_config SET value = 0 WHERE name = 'debugdisplay';
</syntaxhighlight>
</syntaxhighlight>
Si vous utilisez un préfixe de base de données différent de mdl_, pensez à modifier ces commandes en conséquence.
Si vous utilisez un préfixe de base de données différent de mdl_, pensez à modifier ces commandes en conséquence.


'''ATTENTION''' : pour que ces changements soient pris en compte, il est impératif de "vider tous les caches" après l'exécution de ces requêtes !
'''ATTENTION''' : pour que ces changements soient pris en compte, il est impératif de "vider tous les caches" après l'exécution de ces requêtes !
== Voir aussi ==
== Voir aussi ==
* Si vous êtes un développeur à la recherche d'informations sur l'utilisation de l'instruction <tt>debugging()</tt>, essayez lib/weblib.php pour la documentation sur son utilisation, et lib/setuplib.php pour les définitions des niveaux d'erreurs PHP auxquels font référence les indicateurs <tt>DEBUG_*</tt>.  
* Si vous êtes un développeur à la recherche d'informations sur l'utilisation de l'instruction <tt>debugging()</tt>, essayez lib/weblib.php pour la documentation sur son utilisation, et lib/setuplib.php pour les définitions des niveaux d'erreurs PHP auxquels font référence les indicateurs <tt>DEBUG_*</tt>.  
* Les développeurs peuvent également utiliser [http://xdebug.org/ XDEBUG] (Installé en tant que module sur le serveur Apache) pour creuser davantage le code, étape par étape en utilisant une [http://xdebug.org/docs/remote application client XDEBUG]. Probablement, intégrée à leur IDE préféré. Par exemple : [http://php.netbeans.org/ NetBeans], [http://www.jetbrains.com/phpstorm/ phpStorm]...
* Les développeurs peuvent également utiliser [http://xdebug.org/ XDEBUG] (Installé en tant que module sur le serveur Apache) pour creuser davantage le code, étape par étape en utilisant une [http://xdebug.org/docs/remote application client XDEBUG]. Probablement, intégrée à leur IDE préféré. Par exemple : [http://php.netbeans.org/ NetBeans], [http://www.jetbrains.com/phpstorm/ phpStorm]...
[[en:Debugging]]
[[en:Debugging]]
[[es:Depuración]]
[[es:Depuración]]

Dernière version du 17 mai 2023 à 08:50

Les messages de débogage peuvent être activés par un administrateur depuis Administration > Administration du site > Développement > Débogage.

capture d'écran
capture d'écran

Les messages de débogage sont destinés à aider à diagnostiquer les problèmes et / ou à aider les développeurs de Moodle. Si vous rencontrez un problème avec votre site Moodle et demandez de l'aide dans un forum Moodle.org, on peut vous demander d'activer les messages de débogage afin de localiser la cause du problème. Par défaut, Moodle n'affiche aucun message d'erreur. Si vous rencontrez des problèmes (par exemple, des écrans vides ou des écrans incomplets), activer le débogage est généralement la première chose à faire.

Paramètres de débogage

Voici les paramètres de la page de débogage :

Messages de débogage

La valeur par défaut est "Aucun", vos choix sont les suivants :

AUCUN
Ne pas afficher d'erreurs ou d'avertissements (par défaut)
MINIMAL
Afficher uniquement les erreurs fatales
NORMAL
Afficher les avertissements, les erreurs et les avis
TOUT
Afficher tous les messages de débogage PHP
DÉVELOPPEUR
Messages de débogage supplémentaires pour les développeurs

Il y a rarement un avantage à aller au niveau développeur, à moins d'être un développeur, auquel cas c'est fortement recommandé.

Une fois que vous avez obtenu le message d'erreur, et l'avez copié et collé quelque part, il est fortement recommandé de remettre l'affichage à Aucun : les messages de débogage peuvent donner des indices à un pirate informatique quant à la configuration de votre site.

Afficher les informations de débogage

Il y a une option pour choisir d'afficher les messages d'erreur ou simplement les enregistrer dans les logs du serveur.

Débogage de l'envoi des courriels

Détermine l'affichage d'informations de débogage détaillées lors de l'envoi de courriels au serveur SMTP.

Plus d'outils pour le débogage des courriels sortant

Vous pouvez également utiliser le fichier config.php pour activer d'autres «outils» qui vous aideront à déboguer les courriels sortants (et la configuration du serveur SMTP) :

  • Rediriger tous les courriels sortants vers une adresse spécifique :
// Divert all outgoing emails to this address to test and debug emailing features
// $CFG->divertallemailsto = 'root@localhost.local'; // NOT FOR PRODUCTION SERVERS!
// Force developer level debug and add debug info to the output of cron
// $CFG->showcrondebugging = true;

Puis utilisez SSH (ou putty.exe, sur Windows) pour exécuter :

vous@serveur-moodle(/var/www/html/moodle)# php admin/cli/cron.php
  • Activez le débogage SMTP détaillé et envoyez le résultat sur le fichier système error_log (via modification de code) :

Comme suggéré sur une discussion de forum, ouvrez lib/moodlelib.php (ligne 5573 pour Moodle 3.2), cherchez la partie comportant if (!empty($CFG->debugsmtp)) et modifiez la pour ajouter $mailer->Debugoutput = "error_log";. Cela donnerait :

if (!empty($CFG->debugsmtp)) {
    $mailer->SMTPDebug = 1;  // 0 - no debug ... 4 - low level full debug
    $mailer->Debugoutput = "error_log";
}

Vous trouverez plus d'informations sur les paramètres SMTPDebug et Debugoutput.

Débogage des requêtes SQL

Vous pouvez ajouter (activer) l'une des options suivantes de dboptions dans votre fichier de configuration config.php, qui enregistre différents types de requêtes SQL dans la table mdl_log_queries table :

  • logall - enregistre toutes les requêtes - uniquement pour les développeurs, car créé de fortes charges serveur et n'est PAS recommandé en production
  • logslow - enregistre les requêtes durant plus qu'un nombre spécifique de secondes (les nombres à virgule sont acceptés)
  • logerrors - enregistre les requêtes en erreur

Exemple complet :

$CFG->dboptions = array (
  //'logall'   => true,
  'logslow'  => 5,
  'logerrors'  => true,
);

Informations de performance

L'option informations de performance détermine si les informations de performance seront incluses dans le pied de page du thème standard (et d'autres thèmes). L'information sur la performance comprend le temps de chargement de la page, la quantité de mémoire utilisée pour générer la page, l'utilisation du processeur, la charge et le ratio d'utilisation de mémoire cache d'enregistrement.

Si vous ajoutez :

define('MDL_PERF', true);
define('MDL_PERFDB', true);
define('MDL_PERFTOLOG', true);
define('MDL_PERFTOFOOT', true);

à votre fichier de configuration config.php, il comptera également les requêtes de base de données. Cela doit être dans config.php, car Moodle commence à faire des requêtes en base de données avant de charger les informations de configuration dans la base de données !

Pour cacher les informations de performance aux utilisateurs ordinaires, lisez la discussion Performance info only for admins? (en anglais).

Afficher l'origine des chaînes de caractères

Permet d'aider à la traduction et la personnalisation de la langue. Parfois le code ?strings=1 doit être ajouté (s'il n'y a pas déjà de paramètre), ou &strings=1 (après d'autres paramètres). Voir l'article Wikipedia Chaîne de requête pour plus de détails.

Afficher les liens de validation W3C

Soyez prudent, lisez l'avertissement.

Afficher les informations sur la page

Pour afficher les informations de page dans le pied de page.

Que faire si vous n'arrivez pas à obtenir la page d'administration du débogage

Si l'erreur vous empêche même d'ouvrir la page d'administration permettant d'activer le débogage, vous pouvez l'activer manuellement.

Essayez de saisir l'URL directe

Les paramètres de débogage se trouvent à l'URL http://.../admin/settings.php?section=debugging sur votre serveur. Parfois, cette URL fonctionnera, même si les pages que vous devez utiliser pour y arriver (par exemple la page d'accueil du site) ne fonctionnent pas. Cela vaut donc la peine d'essayer de saisir cette URL directement.

Dans le fichier config.php

Dans le fichier de configuration config.php, vous pouvez insérer quelques lignes en utilisant les informations de la Section 7 du fichier config-dist.php pour activer le débogage pour tout le monde, ou l'activer uniquement pour certains utilisateurs.

Voila ce que l'on trouve en Section 7 du fichier config-dist.php :

//=========================================================================
// 7. SETTINGS FOR DEVELOPMENT SERVERS - not intended for production use!!!
//=========================================================================
//
// Force a debugging mode regardless the settings in the site administration
// @error_reporting(E_ALL | E_STRICT); // NOT FOR PRODUCTION SERVERS!
// @ini_set('display_errors', '1');    // NOT FOR PRODUCTION SERVERS!
// $CFG->debug = (E_ALL | E_STRICT);   // === DEBUG_DEVELOPER - NOT FOR PRODUCTION SERVERS!
// $CFG->debugdisplay = 1;             // NOT FOR PRODUCTION SERVERS!
//
// You can specify a comma separated list of user ids that always see
// debug messages, this overrides the debug flag in $CFG->debug and $CFG->debugdisplay
// for these users only.
// $CFG->debugusers = '2';

Pensez à enlever (ou commenter, avec // en début de ligne) ces lignes lorsque vous avez fini de diagnostiquer votre problème.

ATTENTION : n'essayez pas de modifier la table de base de données de configuration directement ; cela ne fonctionnera pas car les valeurs sont mises en cache dans MUC !

Par exemple, vous pouvez ajouter au fichier moodle/config.php ces lignes pour activer le mode débogage pour développeur :

$CFG->debug = 32767; 
$CFG->debugdisplay = 1;

Les différentes valeurs possibles (de "pas de débogage" à "développeur") sont : 0, 5, 15, 30719 et 32767. Dans les versions plus anciennes de Moodle, on pouvait utiliser pour valeur 2047 ou 6143.

Pour désactiver le débogage, utilisez la page d'administration, ou utilisez la valeur 0 pour debug et debugdisplay.

Dans la base de données

Si vous n'avez vraiment pas d'autre solution (pas d'accès au fichier de configuration, ni à votre plateforme), vous pouvez utiliser un accès direct à la base (en ligne de commande), ou un outil comme phpMyAdmin, pour exécutez les commandes SQL suivantes :

UPDATE mdl_config SET value = 32767 WHERE name = 'debug';
UPDATE mdl_config SET value = 1     WHERE name = 'debugdisplay';

Pour désactiver le débogage, utilisez la page d'administration, ou les commandes suivantes :

UPDATE mdl_config SET value = 0 WHERE name = 'debug';
UPDATE mdl_config SET value = 0 WHERE name = 'debugdisplay';

Si vous utilisez un préfixe de base de données différent de mdl_, pensez à modifier ces commandes en conséquence.

ATTENTION : pour que ces changements soient pris en compte, il est impératif de "vider tous les caches" après l'exécution de ces requêtes !

Voir aussi

  • Si vous êtes un développeur à la recherche d'informations sur l'utilisation de l'instruction debugging(), essayez lib/weblib.php pour la documentation sur son utilisation, et lib/setuplib.php pour les définitions des niveaux d'erreurs PHP auxquels font référence les indicateurs DEBUG_*.
  • Les développeurs peuvent également utiliser XDEBUG (Installé en tant que module sur le serveur Apache) pour creuser davantage le code, étape par étape en utilisant une application client XDEBUG. Probablement, intégrée à leur IDE préféré. Par exemple : NetBeans, phpStorm...