FAQ sur les erreurs

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


Erreur : échec de la connexion à la base de données

Si vous obtenez des erreurs comme "échec de la connexion à la base de données" ou "n'a pas pu se connecter à la base de données que vous avez spécifiée", voici quelques raisons et solutions possibles.

  • Votre serveur de base de données n'est pas installé ou en cours d'exécution. Pour vérifier la présence de MySQL, essayez de taper la ligne de commande suivante :
$telnet database_host_name 3306

Vous devriez obtenir une réponse cryptée qui inclut le numéro de version du serveur MySQL.

  • Si vous essayez d'exécuter deux instances de Moodle sur des ports différents, utilisez l'adresse IP de l'hôte (pas localhost) dans le paramètre $CFG->dbhost, par exemple $CFG->dbhost = 127.0.0.0.1:3308.
  • Vous n'avez pas installé les extensions PHP mysql ou postgresql (veuillez consulter la page FAQ pour savoir si PHP est installé).
  • Vous n'avez pas créé une base de données Moodle et assigné à un utilisateur les privilèges d'accès corrects.
  • Les paramètres de la base de données Moodle sont incorrects. Le nom de la base de données, l'utilisateur de la base de données ou le mot de passe de l'utilisateur de la base de données dans votre fichier de configuration Moodle config.php est incorrect. Utilisez phpMyAdmin pour configurer et vérifier votre installation MySQL.
  • Vérifiez qu'il n'y a pas d'apostrophes ou de lettres non alphabétiques dans votre nom d'utilisateur ou mot de passe MySQL.
  • Vous utilisez MySQL version 4.1 ou supérieure mais l'extension PHP MySQL est pré-4.1 (vérifiez dans votre sortie phpinfo). Dans ce cas, l'algorithme de hachage de mots de passe par défaut est incompatible avec celui disponible dans l'extension PHP mysql version 4.x.x. Utilisez ces commandes MySQL pour changer les mots de passe au format précédent :
mysql>SET PASSWORD FOR 'root'@'localhost' = OLD_PASSWORD('password');
mysql>SET PASSWORD FOR 'moodleuser'@'localhost' = OLD_PASSWORD('password');

Aussi, pensez à mettre à jour votre extension PHP MySQL. Voir ce document MySQL pour plus d'informations sur la façon dont il faut traiter ce problème.

  • Vous utilisez Fedora Core 3 ou un autre système Linux avec SELinux installé et activé. Voir l'URL suivante pour savoir comment désactiver SELinux : http://fedora.redhat.com/projects/selinux/ Si vous ne voulez pas désactiver SELinux, vous devez autoriser le processus httpd pour créer des connexions réseau :

setsebool httpd_can_network_connect true

  • Utilisateurs de Mac OSX : si vous utilisez MySQL sous Mac OSX, essayez de changer $CFG->dbhost de "localhost" à "127.0.0.0.1".

Voir aussi : la page MySQL sur erreurs fréquentes qui liste plusieurs scénarios possibles d'échec de connexion, avec des conseils sur la façon dont il faut résoudre les problèmes.

Je ne peux pas me connecter avec le message "Veuillez vérifier que le paramètre actuel de session.save_path est correct"

Cette erreur se produit lorsque PHP a des problèmes pour enregistrer ses fichiers de session. Vous pouvez également voir ces autres messages d'erreur affichés à l'écran ou dans vos fichiers historiques :

Warning: Unknown: open(some-path/sessions/sess_acbf942a7399db3489ffa910e35d5242, O_RDWR)

failed: Permission denied (13) in Unknown on line 0
Warning: Unknown(): open(some-path/sessions/sess_acbf942a7399db3489ffa910e35d5242, O_RDWR) 
failed: No space left on device (28) in Unknown on line 0
Warning: Unknown: Failed to write session data (files). Please verify that the current 
setting of session.save_path is correct (some-path/sessions) in Unknown on line 0

Pour contourner temporairement ces erreurs, utiliser les sessions de base de données en éditant votre Fichier de configuration et en ajoutant cette ligne :

$CFG->dbsessions = true;

Les sessions de base de données peuvent surcharger votre base de données mysql et ne sont pas idéales dans un environnement d'hébergement commun, donc si cela résout le problème, vous pouvez commencer à réparer le problème comme suit :

  • Cochez droits d'accès. Le chemin du fichier session.save_path doit être accessible par l'utilisateur apache. Essayez cette commande :
chown -R apache:apache some-path/sessions
Ceci suppose que "apache" est le nom de l'utilisateur sous lequel tourne votre serveur web, il peut aussi être "nobody".
  • Cochez les permissions du répertoire dans lequel PHP essaie d'enregistrer (session.save_path = some-path/sessions). Définissez les permissions initialement à 0777 (tout le monde lit, écrit, exécute) avec cette commande
chmod -R 0777 some-path/sessions
Si cela corrige le problème, réduisez les permissions (700 est recommandé).

Voir aussi: Les problèmes de session peuvent être spécifiques à votre environnement serveur. Par exemple, voir ce forum de discussion sur les problèmes de session avec l'hébergement Lycos.

Erreur : Une erreur de serveur qui affecte votre session de connexion a été détectée

Si redémarrer votre navigateur et vous reconnecter à votre site Moodle ne fonctionne pas, consultez la discussion du forum Utilisation de Moodle forum de discussion sur ce message d'erreur.

Si cela a été reçu sur un site Moodle.org, le site pourrait être en cours de mise à jour. Veuillez essayer la suggestion et/ou attendre et réessayer. Ou signalez-le à Tracker.

Erreur : Echec de l'ouverture requise /web/moodle/lib/setup.php

Dans votre config.php, le paramètre que vous utilisez pour la variable dirroot doit être le chemin complet depuis la racine du disque dur de votre serveur.

Parfois, les gens n'utilisent que le chemin d'accès de leur répertoire d'origine, ou par rapport à la racine du répertoire du serveur web.

Mes pages montrent des erreurs fatales telles que : Erreur d'analyse, appel à une fonction non définie : get_string()

Si vous voyez des erreurs comme :

Parse error: parse error, unexpected T_VARIABLE in /path/to/moodle/config.php on line 94 
Fatal error: Call to undefined function: get_string() in /path/to/moodle/mod/resource/lib.php
on line 11

alors vous avez probablement omis un point-virgule ou une guillemet de fermeture d'une ligne dans config.php (avant la ligne 94).

Une autre possibilité est que vous avez édité config.php dans un programme comme Word et que vous l'avez sauvegardé en tant que page Web HTML, au lieu d'utiliser un éditeur de texte brut comme Notepad+++.

Une autre chose à vérifier, en particulier si vous utilisez des plugins supplémentaires, est si l'un des scripts php utilise des balises courtes ouvertes (< ? ?>) au lieu des balises appropriées (<?php ?>). Les balises courtes sont mauvaises pour diverses raisons, alors contactez d'abord l'auteur de cette extension pour lui parler du problème. Remplacez ensuite les balises courtes par des balises conventionnelles, ou définissez cette ligne dans le fichier php.ini :

short_open_tag = On

Vous ne devriez jamais trouver de balises courtes dans le code moodle de base. Si c'est le cas, veuillez déposer un bogue dans le tracker.

Quand je vais sur la page d'administration, on me dit de vider dirroot !

Si vous voyez des erreurs comme celle-ci :

Veuillez corriger vos paramètres dans config.php : 

Vous avez : $CFG->dirroot = "/home/users/fred/public_html/moodle";

mais ça devrait être : $CFG->dirroot = "";

alors vous avez rencontré un petit bogue qui se produit sur certains serveurs. Le problème vient du mécanisme de vérification des erreurs, et non de votre chemin réel. Pour le corriger, trouvez cette ligne (ligne 66) dans le fichier admin/index.php :

Si vous avez ($dirroot != $CFG->dirroot) {

Changez-le en ceci:

Si (!empty($dirroot) and $dirroot != $CFG->dirroot) {

Pourquoi est-ce que je continue à recevoir des messages d'erreur à propos des "en-têtes déjà envoyés" ?

Si vous voyez des erreurs comme celle-ci :

Warning: Cannot add header information - headers already sent by 
(output started at /webs/moodle/config.php:87) in /webs/moodle/lib/moodlelib.php 
on line 1322 
Warning: Cannot add header information - headers already sent by 
(output started at /webs/moodle/config.php:87) in /webs/moodle/lib/moodlelib.php 
on line 1323 
Warning: Cannot add header information - headers already sent by 
(output started at /webs/moodle/config.php:87) in /webs/moodle/login/index.php 
on line 54

vous avez des lignes vides ou des espaces après le ?> final dans votre fichier config.php. Parfois, les éditeurs de texte les ajoutent, par exemple Notepad sous Windows, vous devrez peut-être essayer un éditeur de texte différent (par exemple : Notepad+++) pour supprimer complètement ces espaces ou lignes blanches.

Erreur : "500: Erreur de serveur interne".

Il y a plusieurs causes possibles à cette erreur. C'est une bonne idée de commencer par vérifier l'historique des erreurs de votre serveur web qui devrait avoir une explication plus complète. Cependant, voici quelques possibilités connues...

1. Erreur de syntaxe : Il y a une erreur de syntaxe dans vos fichiers .htaccess ou httpd.conf. La façon dont les directives sont rédigées [1] diffère selon le fichier que vous utilisez. Vous pouvez tester les erreurs de configuration dans vos fichiers Apache en utilisant la commande :

#apachectl configtest

2. PHPsuexec : Votre serveur ne supporte pas les fichiers.htaccess, surtout s'il exécute PHPsuexec, qui est un module Apache utilisé pour augmenter la sécurité d'un site sur un système hébergé. Dans cette situation :

- vous pouvez aussi voir un 403 : Erreur interdite.

- le serveur web s'exécute sous votre propre nom d'utilisateur et tous les fichiers ont un niveau de permissions maximum de 755. Vérifiez que ceci est défini pour votre répertoire Moodle dans votre panneau de contrôle ou (si vous avez accès au shell) utilisez cette commande :

#chmod -R 755 moodle

- utiliser un fichier PHP.INI au lieu d'un fichier.htaccess dans le répertoire où le script PHP Moodle est exécuté. Par exemple : si vous recevez une erreur d'épuisement de mémoire lorsque votre serveur exécute le fichier moodle/admin/cron.php, utilisez un fichier PHP.INI pour modifier votre limite de mémoire et copiez-la dans le répertoire moodle/admin. Rappelez-vous que pour PHP4, les fichiers PHP.INI sont par répertoire, vous devrez donc les copier dans chaque sous-répertoire. Si vous utilisez PHP5 ou supérieur sur un hôte partagé, vérifiez avec votre hôte s'il prend en charge les fichiers PHP.INI personnalisés et comment les créer. La syntaxe utilisée dans un fichier PHP.INI est différente de celle d'un fichier.htaccess et vous devez enlever php_value/php_flag au début de la ligne et utiliser un signe égal pour attribuer une valeur, par ex.

php_value memory_limit 128M <-- .htaccess
memory_limit = 128M         <-- php.ini equivalent

3. Directive incompatible : Vous pouvez avoir des directives dans vos fichiers.htaccess ou httpd.conf qui ne sont pas compatibles avec la version de votre serveur web. Consultez la documentation de votre serveur web.

Erreur "403 : Interdit"

Vérifiez la configuration de votre serveur Web. Voir aussi la section "500: Erreur de serveur interne" ci-dessus.

L'erreur fatale a permis l'épuisement de la mémoire. Comment puis-je augmenter ma limite de mémoire php ?

Vous verrez parfois un message d'erreur comme ceci :

Erreur fatale : Taille de mémoire autorisée : 67108864 octets épuisés 
(essayé d'allouer xx octets) dans /var/www/moodle/yyyyy.php

Cette erreur signifie que la valeur memory_limit de php n'est pas suffisante pour le script php. La valeur limite de mémoire est la "taille de mémoire autorisée", 64M dans l'exemple ci-dessus (67108864 octets / 1024 = 65536 KB. 65536 KB / 1024 = 64 MB). Vous devrez augmenter la valeur php memory_limit jusqu'à ce que ce message ne s'affiche plus. Il existe deux méthodes pour ce faire.

  • Dans le cas d'une installation hébergée, vous devez demander l'aide de votre hébergeur pour ce faire. Cependant, beaucoup autorisent les fichiers.htaccess. Si c'est le cas, ajoutez la ligne suivante à votre fichier.htaccess (ou créez-en une dans le répertoire moodle si elle n'existe pas déjà) :
php_value memory_limit <valeur>M
Exemple : php_value memory_limit 40M
  • Si vous avez votre propre serveur avec accès shell, éditez votre fichier php.ini (assurez-vous qu'il est correct en vérifiant votre sortie phpinfo) comme suit :
memory_limit <valeur>M
Exemple : memory_limit 40M
  • Pour les versions ultérieures de Moodle, il se peut que vous regardiez des chiffres de l'ordre de 512M pour que toutes les fonctions fonctionnent correctement (la sauvegarde et la restauration sont particulièrement gourmandes en mémoire). Il est judicieux de surveiller l'utilisation de la mémoire sur votre serveur si vous utilisez ces grands paramètres.

Rappelez-vous que vous devez redémarrer votre serveur web pour que les modifications apportées au fichier php.ini soient effectives. Une alternative est de désactiver la memory_limit en utilisant la commande memory_limit 0.

Erreur : "Votre session est terminée. Veuillez vous reconnecter" ou "La page n'est pas redirigée correctement" ou "Cette page web a une boucle de redirection".

Veuillez faire l'une ou l'autre des choses suivantes :

  • Essayez de supprimer manuellement les cookies de votre navigateur et fermez-le, puis accédez de nouveau à votre site. Parfois, cela résout le problème.
  • Vérifiez que votre répertoire "moodledata/sessions" a les droits d'écriture. Lorsque vous accédez à Moodle, un nouveau fichier doit y être créé.
  • Si vous exécutez deux versions de Moodle sur le même ordinateur, définissez un préfixe de cookie dans Administration > Serveur > Traitement des sessions.

La discussion Votre séance est terminée. Veuillez vous reconnecter a d'autres solutions proposées :

  • Si vous pouvez accéder à vos fichiers serveur, allez dans le dossier "moodledata", allez dans le dossier "cache" à l'intérieur et effacez tout le contenu (généralement seulement deux fichiers). Moodle supprimera la session gelée avec la boucle de redirection et Moodle fonctionnera à nouveau.

Erreur lors de l'installation : ERR_TOO_MANY_REDIRECTS

  • Vous devrez éditer le fichier moodle\admin\index.php avec un éditeur de fichier tel queNotepad+++. N'utilisez pas MS-Word !
  • Rechercher une ligne qui a :
redirect("index.php?sessionstarted=1&lang=$CFG->lang") ;
  • et ajoutez deux barres obliques inversées pour le commenter comme ceci :
//redirect("index.php?sessionstarted=1&lang=$CFG->lang") ;
  • et essayez de continuer l'installation à partir de votre navigateur.

Erreur fatale : Temps d'exécution maximum de 30 secondes dépassé en....(lors de l'installation)

  • Votre ordinateur prend trop de temps pour exécuter les scripts d'installation. La valeur par défaut était de 30 secondes (mais certaines nouvelles branches de Moodle l'ont augmenté).
  • Appuyez sur F5 (rafraîchir) jusqu'à la fin du processus d'installation.
  • Ou, éditez le fichier sur votre_serveur_local\php\php\php.ini en utilisant un éditeur de texte tel que Notepad+++. N'utilisez pas MS-Word !
    • Recherchez une ligne qui a :
max_execution_time = 30
    • Remplacez la valeur de 30 secondes par une valeur beaucoup plus longue, par exemple 600, pour qu'elle ressemble à :
temps_d'exécution_max = 600
    • Sauvegardez le fichier édité et redémarrez l'installation du serveur local.

Erreur lors de l'installation : La connexion a été réinitialisée / Ce site n'est pas accessible

Erreur1.png

Avez-vous installé ou mis à niveau Skype ?

  • Skype utilise le même port (80) que Moodle.
  • Supprimer Skype.
  • Redémarrez Windows.
  • Installer Moodle et
  • Réinstallez Skype.

Vérifiez le PC avec un bon antivirus

  • Soyez très prudent lorsque vous choisissez un antivirus Windows gratuit/payé.
  • Méfiez-vous des nombreux programmes malveillants qui se présentent comme des solutions antivirus !
  • Il peut être utile de demander à votre expert informatique local, ou à Google, la solution de votre choix, avant de l'installer.

Augmenter le temps autorisé à l'exécution des scripts dans Moodle

Erreur2.png

  • Cliquez sur "Stop Moodle.exe".
  • Modifiez (utilisez Notepad+++ ou un autre éditeur de texte simple, n'utilisez PAS MS-Word) le fichier server/php/php.ini et augmentez le nombre sur la ligne qui indique max_execution_time =  :

Erreur3.png

  • Augmentez la valeur à, disons, 10 minutes (600 secondes) :

Erreur4.png

  • Cliquez sur "Démarrer Moodle.exe".
  • Vérifiez si le problème a été résolu, si ce n'est pas le cas, continuez la lecture ci-dessous.

Consultez si vous avez besoin d'augmenter la taille de pile par défaut d'Apache

  • Si vous vérifiez le fichier error.log sur server/apache/logs/error.log et que vous trouvez une ligne avec

child process XXXX exited with status 3221226356 -- Restarting.

    • (où XXXX est un nombre, n'importe quel nombre)

Erreur5.png

  • Pour résoudre ce problème, utilisez un éditeur de texte (tel que Notepad+++, NE PAS UTILISER MS-WORD) pour ajouter les trois lignes suivantes à la fin du fichier de configuration apache (../server/apache/conf/httpd.conf) :
<IfModule mpm_winnt_module>
  ThreadStackSize 8888888
</IfModule>
  • ET redémarrez Apache.

Avez-vous Google Drive ?

  • Passer à la dernière version d'Apache (XAMPP) peut résoudre le problème.

Comment puis-je corriger un seul bogue, sans mettre à jour l'ensemble de mon site ?

Supposons :

  • Vous utilisez une ancienne version de Moodle.
  • Vous rencontrez un bogue particulier.
  • Vous avez fait une recherche dans le [tracker http://tracker.moodle.org/], et trouvé que votre problème est MDL-abc, et qu'il a été corrigé dans la dernière version.
  • Pour une raison quelconque, vous ne pouvez pas mettre à jour l'ensemble de votre site, même si la dernière version contient probablement des correctifs de sécurité.

Alors, comment pouvez-vous obtenir la solution pour ce seul bogue, sans mettre à jour tout votre site ? Eh bien, si vous êtes prêt à corriger manuellement le code, vous pouvez probablement obtenir cette information à partir du tracker. Veuillez consulter ce guide.

Voir aussi

  • pour une liste des pages d'erreur Moodle.