Erreur de dépôt de fichier Zip SCORM

Erreur de dépôt de fichier Zip SCORM

par brice maroson,
Nombre de réponses : 32

Bonjour,

J'ai actuellement un problème sur ma plateforme Moodle. J'ai déjà consulté les forums et essayé de résoudre le problème mais j'ai pas trouvé une solution.

Contexte technique

  • Version : 3.5.16
  • Thème Moodle utilisé : essential
  • Version PHP : 7.0
  • os: CenOS 7
  • Base de données  : Mysql 5.7
  • Navigateur web : Firefox, google chrome
  • moodledata est monté en nfs avec les droits 777 et apache:apache

Comment reproduire le problème

  1. Se connecter sur notre plateforme moodle puis
  2. Utiliser  Paquetage SCORM dans moodle pour déposer un zip scorm ça m'affiche l'erreur ci-dessous (voir image).

error: Impossible de créer les dossiers de la collection locale de fichiers. Veuillez vérifier les droits d'accès au dossier

(Modifié par Nicolas Martignoni. Écrit initialement le vendredi 22 octobre 2021, 16:28)

Moyenne des évaluations  -
En réponse à brice maroson

Re: Erreur de dépôt de fichier Zip SCORM

par Jean-Gabriel DEPINOY,
Avatar Moodleurs particulièrement utiles
Bonjour Brice,
Est-ce que tu as modifié le paramétrage des Paquetages SCORM ?
Est-ce que tu peux activer le débogage pour avoir plus d'infos sur ton erreur ?
Peut-être que cette discussion décrit le même problème : https://moodle.org/mod/forum/discuss.php?d=275043

En réponse à Jean-Gabriel DEPINOY

Re: Erreur de dépôt de fichier Zip SCORM

par brice maroson,
Bonjour,
J'ai laissé le paramétrage par défaut, j'ai activé le débogage et en faisant la même manip, j'ai eu l'erreur ci-dessous (voir img).  Pourtant un simple dépôt de fichier (pas de type scorm ) fonctionne bien.

erreur de dépôt scorm
En réponse à brice maroson

Re: Erreur de dépôt de fichier Zip SCORM

par Jean-Gabriel DEPINOY,
Avatar Moodleurs particulièrement utiles
Quelques questions supplémentaires:
- est-ce que tu as bien mis le débogage en mode développeur ?
- quelle est la taille du fichier Scorm ?
- Y a-t-il eu une mise à jour de Moodle récemment ?
- Qui héberge ton Moodle ?
- Ton Moodle est-il en http ou en https ?
En réponse à Jean-Gabriel DEPINOY

Re: Erreur de dépôt de fichier Zip SCORM

par brice maroson,
-C'est bien le débogage en mode développeur
- 7,2Mo et l'autre 2.55Mo (la conf dans php.ini est de 200mo)
- J'ai pas compris la question(Y a-t-il eu une mise à jour de Moodle récemment ?). Sinon, de mon côté j'ai pas fait de mise à jour
- Hébergé dans notre datacenter
- Je l'ai testé avec du http et https et c'est le même résultat avec moodle v3.5 (en prod) et v3.9 (en test)
En réponse à brice maroson

Re: Erreur de dépôt de fichier Zip SCORM

par Jean-Gabriel DEPINOY,
Avatar Moodleurs particulièrement utiles
Peux-tu essayer d'ajouter : $CFG->preventfilelocking = true à ton fichier config.php ?
En réponse à Jean-Gabriel DEPINOY

Re: Erreur de dépôt de fichier Zip SCORM

par Bruno Malaval,
Avatar Moodleurs particulièrement utiles
Bonjour,

Au vu de l'erreur et du code Moodle, il semble que l'importation du fichier SCORM bloque sur les droits de fichiers.
"Impossible de créer ... "

Cette erreur apparaît avec le code suivant

if (!mkdir($hashpath, $this->dirpermissions, true)) {
                 // Permission trouble.
                 throw new file_exception('storedfilecannotcreatefiledirs');
}

Après le dépôt du fichier zip, Moodle extrait le contenu, et teste la possibilité de créer des sous-répertoires
Il faudrait vérifier les droits sur le répertoire moodledata.

D'après les tests effectués dans le code, le compte / groupe associé au serveur web (ex:  apache) n'a pas les droits pour créer de nouveaux répertoires.
afin de vérifier les droits sur le dossier moodledata et notamment le sous-répertoire filedir

Bruno

En réponse à Bruno Malaval

Re: Erreur de dépôt de fichier Zip SCORM

par Jean-Gabriel DEPINOY,
Avatar Moodleurs particulièrement utiles
Bonjour Bruno,
Ce qui est étonnant, c'est que seuls les fichiers Scorm posent problème. Donc le dossier moodledata doit être globalement accessible en écriture...
En réponse à Jean-Gabriel DEPINOY

Re: Erreur de dépôt de fichier Zip SCORM

par Bruno Malaval,
Avatar Moodleurs particulièrement utiles
Effectivement,

Je ne m'explique pas trop la raison, mais le code indique un test sur la création d'un répertoire qui échoue.
C'était juste une idée pour confirmer la bonne configuration du dossier data.
Et peut-être également tester les droits des nouveaux éléments créés, par la commande umask.

Juste pour être sûr que tout est ok de ce coté.

Bruno
En réponse à Bruno Malaval

Re: Erreur de dépôt de fichier Zip SCORM

par brice maroson,


Bonjour,

J'ai essayé de déposer le fichier zip scorm dans  "activité -devoir"(voir fig ci-dessous) et ça fonctionne. Mais quand je le mets dans "Paquetage SCORM" ça m'affiche l'erreur.

umask m'affiche 0022

dans config.php j'ai rajouté "$CFG->preventfilelocking = true;" , toujours le même problème. Même erreur sur tous les serveurs (v3.5 et 3.9)

Brice

En réponse à brice maroson

Re: Erreur de dépôt de fichier Zip SCORM

par Jean-Gabriel DEPINOY,
Avatar Moodleurs particulièrement utiles
Que donnent les paramètres dans Administration du site > Plugins > Modules d'activité > Paquetage SCORM > Réglages administrateur ?
Est-ce que tu peux essayer de cocher la case Activer l'API de débogage et de tracement ? Puis voir si le débogage te donne des messages d'erreurs supplémentaires ?
Avec quel logiciel as-tu créé tes Scorms ?
As-tu fait des essais avec plusieurs fichiers scorm différents ?
En réponse à Jean-Gabriel DEPINOY

Re: Erreur de dépôt de fichier Zip SCORM

par brice maroson,
J'ai coché la case "Activer l'API de débogage et de tracement" mais le message d"erreur reste le même.
-Sur le même serveur de test, j'ai installer moodle v3.5 (même version ) avec une base de données propre, les 2 fichiers scorm marche très bien.

En réponse à brice maroson

Re: Erreur de dépôt de fichier Zip SCORM

par Jean-Gabriel DEPINOY,
Avatar Moodleurs particulièrement utiles
Mais du coup, est-ce qu'aucun fichier Scorm ne se charge ou bien est-ce que le problème est limité à quelques fichiers ?
En réponse à Jean-Gabriel DEPINOY

Re: Erreur de dépôt de fichier Zip SCORM

par brice maroson,
Aucun fichier scorm ne se charge
Le droit dans config.php est bon  $CFG->directorypermissions = 0777; 
En réponse à brice maroson

Re: Erreur de dépôt de fichier Zip SCORM

par Jean-Gabriel DEPINOY,
Avatar Moodleurs particulièrement utiles
N'utilisant pas les fichiers Scorm, je ne sais pas dans quel sous dossier de moodledata ils sont déposés.
As-tu vérifié si TOUS les sous dossiers de moodledata avaient les droits d'écriture ?
En réponse à Jean-Gabriel DEPINOY

Re: Erreur de dépôt de fichier Zip SCORM

par Bruno Malaval,
Avatar Moodleurs particulièrement utiles

la configuration et les réglages des droits semblent bien corrects

Pour info, sur notre serveur, dans le fichier config.php nous avons
$CFG->directorypermissions = 02777

C'est historique comme config, le 2 permettant simplement de fixer le bit sgid pour donner les droits au groupe apache
mais je ne pense pas que cela soit la solution

Piste 1 : Vous dites avoir fait le test sur un autre serveur avec la même version de Moodle.
Je comprends que vous avez fait une nouvelle installation.
Pouvez-vous essayer en copiant le répertoire web de votre serveur de prod, plutôt qu'en installant une version neuve du code ?
Cela permettrait de déterminer si le problème vient du code ou de la configuration du serveur

Piste 2 : Avez-vous regarder dans les logs apache ?
En augmentant temporairement le niveau de log, vous pourriez voir si l'utilisateur apache ne rencontre pas une erreur lors de l'accès au dossier

Après, je risque d'être à cours d'idées ... 😶

Bruno

En réponse à Bruno Malaval

Re: Erreur de dépôt de fichier Zip SCORM

par brice maroson,
J'ai mis $CFG->directorypermissions = 02777 ça ne fcontionne pas.
En fait, nous avons 4 serveurs:
prod v3.5 ,
test v3.5 (copie de la prod)
v3.5( from scratch)
v3.9 (dev )

moodledata de ces 4 serveurs sont tous montés en nfs. Les 3 serveurs ont tous le même problème et le v3.5 (from scratch) arrive bien à exécuter le fichier scorm.
J'ai augmenté la verbosité de apache mais il n'affiche rien quand le message d'erreur s'affiche.
Est-ce qu'il y a un moyen de savoir l'endroit ou le dossier doit être créé dans filedir de moodledata? ou mettre tous les dossier de scorm sur un autre répertoire? car je l'impression qu'il n'arrive à créer le dossier dans moodledata/filedir/*.
Encore merci pour votre aide car je suis à court d'idées.
En réponse à brice maroson

Re: Erreur de dépôt de fichier Zip SCORM

par Jérôme DEMIAUX,
Avatar Traducteurs

Bonjour,

En parcourant la discussion, il semblerait que seuls les fichiers Zip soient en cause.
Serait-il possible que Moodle ne puisse les décompacter ?

Un essai dans une ressource Dossier, dépôt de zip puis décompression, permettrait d'écarter cette possibilité.

Jérôme.

En réponse à Jérôme DEMIAUX

Re: Erreur de dépôt de fichier Zip SCORM

par brice maroson,

Bonjour,

J'arrive bien à faire un dépôt zip dans ressource Dossier, puis le décompresser (voir fig ci-dessous)


Brice

En réponse à brice maroson

Re: Erreur de dépôt de fichier Zip SCORM

par Bruno Malaval,
Avatar Moodleurs particulièrement utiles

Bonjour,

Cela devient complexe comme erreur, ou alors on loupe quelque chose de basique ...
Autre idée, qui ne corrige pas , mais pour avoir plus d'infos, tracer le code ...

D'après le retour du debug, l'erreur est ici :

"line 443 of /lib/filestorage/file_system_filedir.php ..."
A ce niveau dans le fichier, le code ressemble à ça :

         if (!is_dir($hashpath)) {
             if (!mkdir($hashpath, $this->dirpermissions, true)) {
                 // Permission trouble.
                 throw new file_exception('storedfilecannotcreatefiledirs');
             }
         }
En testant d'abord sur une PF test pour ne pas casser le code en production, j'essaierai de mettre un petit morceau de code pour afficher et/ou sortir dans un fichier les valeurs de
$hashpath et $this->dirpermissions
A voir ...

Bruno



En réponse à Bruno Malaval

Re: Erreur de dépôt de fichier Zip SCORM

par Jérôme DEMIAUX,
Avatar Traducteurs

Bonjour,

Certainement un truc très basique.
Une expérience non testée reste la communication d'un scorm qui coince à une personne tierce pour le test sur sa propre plateforme.
Si l'erreur est également transmise, alors c'est plutôt le fichier et sa production qui seront mis en cause.

J.

En réponse à Bruno Malaval

Re: Erreur de dépôt de fichier Zip SCORM

par brice maroson,

Bonjour,

En capturant les valeurs de  $hashpath et $this->dirpermissions, j'ai le résultat ci-dessous

Error


Brice

En réponse à brice maroson

Re: Erreur de dépôt de fichier Zip SCORM

par Jean-Gabriel DEPINOY,
Avatar Moodleurs particulièrement utiles
Je ne suis pas expert dans les droits, mais il semblerait que ça corresponde à un droit de lecture et d'exécution mais pas d'écriture en tant qu'utilisateur.
Est-ce que tu peux essayer de modifier les droits du dossier /filedir/33/30 de moodledata pour ajouter les droits d'écriture ?
Le problème, c'est que Moodle crée sa propre arborescence dans /moodledata quand on dépose des fichiers qu'il "découpe" à sa guise. Du coup, même si tu arrives à mettre des droits d'écriture dans ce dossier, il n'est pas sûr que ça fonctionnera pour le prochain fichier Scorm que tu déposera. Mais ça vaut peut-être le coup d'essayer déjà et de réessayer de déposer ton fichier Scorm.
Au moins, on aura peut-être éliminé une piste.
En réponse à Jean-Gabriel DEPINOY

Re: Erreur de dépôt de fichier Zip SCORM

par Bruno Malaval,
Avatar Moodleurs particulièrement utiles
Juste à propos des droits, à mon sens ils sont corrects dans les paramètres de la fonction mkdir

Si l'on met comme droits
0777 => en binaire 000 111 111 111 => en décimal 511
02777 => en binaire 010 111 111 111 => en décimal 1535

Donc ils sont interprétés correctement par rapport à la configuration.
Après, effectivement il faut vérifier le répertoire pour ce fichier scorm

Si l'on change de fichier, le hash sera différent et donc le répertoire également
En réponse à Bruno Malaval

Re: Erreur de dépôt de fichier Zip SCORM

par brice maroson,
Quand j'ai regardé dans le répertoire moodledata/filedir/, je vois déjà que le nom 33 existe déjà et c'est un fichier.
Du coup, j'ai renommé le fichier 33 en 33.ORIGIN puis j'ai crée le dossier 33 (voir fig ci-dessous) avec les droits qui vont avec et ça marche.

Mais quand j'ouvre le fichier 33, il y a du code php ci-dessous,


Et je ne sais pas ou est-ce qu'il l'appelle dans moodle.
Brice

















En réponse à brice maroson

Re: Erreur de dépôt de fichier Zip SCORM

par Jean-Gabriel DEPINOY,
Avatar Moodleurs particulièrement utiles
Bonjour Brice,
Qu'est-ce qui t'empêche de laisser le fichier 33 ? On peut très bien avoir un dossier /33 et un fichier 33 dans le même dossier.
Si le fichier 33 est présent dans ton dossier, il a sûrement une utilité.
En réponse à Jean-Gabriel DEPINOY

Re: Erreur de dépôt de fichier Zip SCORM

par brice maroson,
Bonjour,
En fait, quand j'ai crée le dossier 33 sans modifié le fichier 33, il dit que le nom 33 existe déjà. Pourtant, un fichier et un dossier peuvent avoir le même nom.
En réponse à brice maroson

Re: Erreur de dépôt de fichier Zip SCORM

par Bruno Malaval,
Avatar Moodleurs particulièrement utiles
Effectivement, sous linux tout du moins, vous ne pouvez pas avoir un fichier et un dossier avec un nom strictement identique dans le même répertoire.

Je crois que windows l'autorise, mais il y a tellement longtemps que j'ai pas mis les pieds dedans ... 😉

Bruno
En réponse à brice maroson

Re: Erreur de dépôt de fichier Zip SCORM

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
Bonjour,

Il n'y a aucune raison qu'un fichier 33 existe dans le dossier filedir, et encore moins avec du code PHP !

Mais je me demande comment ce fichier c'est retrouvé à cet endroit. Cela pourrait être une mauvaise manipulation (le 33 ferait penser à une archive de Moodle 3.3), le résultat inattendu d'un script, voire un piratage.

Séverin
Moyenne des évaluations Utile (1)
En réponse à Séverin Terrier

Re: Erreur de dépôt de fichier Zip SCORM

par brice maroson,
Je me suis dit la même chose (piratage). Mais en tout cas, merci à tous.
Brice
En réponse à brice maroson

Re: Erreur de dépôt de fichier Zip SCORM

par Bruno Malaval,
Avatar Moodleurs particulièrement utiles
je pencherais plus pour une mauvaise manipulation.
En regardant les infos du fichier "33", il date quand même du 17 avril 2015
Par rapport aux autres dossiers, c'est un peu vieux

après, cela voudrait dire que le hasard a fait qu'il n'y a pas eu de fichiers déposés depuis cette date avec un hash démarrant par "33...."

Bruno