Débogage

De MoodleDocs
Révision datée du 21 mars 2017 à 15:30 par Séverin Terrier (discussion | contributions) (Création de la page)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à :navigation, rechercher

Remarque : la traduction de cette page n'est pas terminée. N'hésitez pas à traduire tout ou partie de cette page ou à la compléter. Vous pouvez aussi utiliser la page de discussion pour vos recommandations et suggestions d'améliorations.

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

You can also use the config.php file to turn on more "tools" which will assist you with debugging the outgoing emails (and SMTP server configuration):

  • Redirect all outgoing emails to a specific address:

// Divert all outgoing emails to this address to test and debug emailing features // $CFG->divertallemailsto = 'root@localhost.local'; // NOT FOR PRODUCTION SERVERS!

  • Turn on the CRON debugging and run CLI cron.php script.

// Force developer level debug and add debug info to the output of cron // $CFG->showcrondebugging = true; And then use SSH (or putty.exe, on windows) to run: you@moodle-server(/var/www/html/moodle)# php admin/cli/cron.php

  • Turn on verbose SMTP debugging and output it into system's error_log (code hack):

As suggested on Moodle's discussion forums: Open lib/moodlelib.php L5379 and change it to: if (!empty($CFG->debugsmtp)) {

   $mailer->SMTPDebug = 1;  // 0 - no debug ... 4 - low level full debug
   $mailer->Debugoutput = "error_log";

} See more info about SMTPDebug parameters & Debugoutput parameters

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 utiliser 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 moodle/config.php vous pouvez ajouter ces lignes :

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

Voire même, pour plus de messages de débogage :

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

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

NOTE 1 : 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.

NOTE 2 : if you find your config.php does not have the above settings (you have a cut down approx 30 lines config.php) look for a "config-dist.php" file that contains the full details. I would suggest transferring your details in the current config.php file you have into the full config file and renaming that one to "config.php".

Dans la base de données

En utilisant un accès direct à la base (en ligne de commande), ou un outil comme phpMyAdmin, exécutez les commandes SQL suivantes :

UPDATE mdl_config SET value = 2047 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.

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