« Débogage » : différence entre les versions
(Création de la page) |
(Traduit et amélioré) |
||
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 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. | ||
Ligne 28 : | Ligne 28 : | ||
==== 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) : | |||
* | |||
* Rediriger tous les courriels sortants vers une adresse spécifique : | |||
<code php> | <code php> | ||
// Divert all outgoing emails to this address to test and debug emailing features | // Divert all outgoing emails to this address to test and debug emailing features | ||
Ligne 35 : | Ligne 36 : | ||
</code> | </code> | ||
* | * Activer le débogage de CRON et exécutez le script cron.php en ligne de commande. | ||
<code php> | <code php> | ||
// Force developer level debug and add debug info to the output of cron | // Force developer level debug and add debug info to the output of cron | ||
// $CFG->showcrondebugging = true; | // $CFG->showcrondebugging = true; | ||
</code> | </code> | ||
Puis utilisez SSH (ou putty.exe, sur Windows) pour exécuter : | |||
<code php> | <code php> | ||
vous@serveur-moodle(/var/www/html/moodle)# php admin/cli/cron.php | |||
</code> | </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>. | |||
Cela donnerait : | |||
<code php> | <code php> | ||
if (!empty($CFG->debugsmtp)) { | if (!empty($CFG->debugsmtp)) { | ||
Ligne 54 : | Ligne 55 : | ||
} | } | ||
</code> | </code> | ||
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]. | |||
=== Informations de performance === | === Informations de performance === | ||
Ligne 84 : | Ligne 85 : | ||
=== Dans le fichier config.php === | === Dans le fichier config.php === | ||
Dans le [[Fichier de configuration|fichier de configuration]] config.php, vous pouvez | 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 : | ||
Ligne 108 : | Ligne 95 : | ||
// | // | ||
// Force a debugging mode regardless the settings in the site administration | // Force a debugging mode regardless the settings in the site administration | ||
// @error_reporting(E_ALL | E_STRICT); | // @error_reporting(E_ALL | E_STRICT); // NOT FOR PRODUCTION SERVERS! | ||
// @ini_set('display_errors', '1'); | // @ini_set('display_errors', '1'); // NOT FOR PRODUCTION SERVERS! | ||
// $CFG->debug = (E_ALL | E_STRICT); // === DEBUG_DEVELOPER - NOT FOR PRODUCTION SERVERS! | // $CFG->debug = (E_ALL | E_STRICT); // === DEBUG_DEVELOPER - NOT FOR PRODUCTION SERVERS! | ||
// $CFG->debugdisplay = 1; | // $CFG->debugdisplay = 1; // NOT FOR PRODUCTION SERVERS! | ||
// | // | ||
// You can specify a comma separated list of user ids | // 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 | // debug messages, this overrides the debug flag in $CFG->debug and $CFG->debugdisplay | ||
// for these users only. | // for these users only. | ||
Ligne 121 : | Ligne 108 : | ||
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 ! | ||
Par exemple, vous pouvez ajouter au fichier ''moodle/config.php'' ces lignes pour activer le mode débogage pour développeur : | |||
<code php> | |||
$CFG->debug = 32767; | |||
$CFG->debugdisplay = 1; | |||
</code> | |||
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 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 : | |||
<code sql> | <code sql> | ||
UPDATE mdl_config SET value = | 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'; | ||
</code> | </code> | ||
Ligne 141 : | Ligne 136 : | ||
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 ! | |||
== Voir aussi == | == Voir aussi == |
Version du 22 mars 2017 à 12:39
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 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!
- Activer le débogage de CRON et exécutez le script cron.php en ligne de commande.
// 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.
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 !
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.
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 le désactiver, 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
- 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...