Séquane

Générateurs d exercices pour le Web

  • Augmenter la taille
  • Taille par défaut
  • Diminuer la taille

Vous obtenez une erreur failed to open stream

Envoyer Imprimer PDF
Si vous obtenez une erreur du type  :

Warning: copy(exercice/exo/index.html): failed to open stream: Permission denied in
/var/www/html/monsite/sequane26/prof_ajout.php on line 25


lorsque vous mettez en ligne un exercice ou créez un professeur, cela signifie que les permissions dont vous disposez sur votre serveur ne vous donnent pas les droits d'écriture dans le dossier cible. La valeur de ces droits est identifiée par trois chiffres qui correspondent au droits de 3 types d'utilisateurs.
Le 1er chiffre définit les droits du propriétaire du fichier
Le 2e chiffre définit les droits du groupe
Le 3e chiffre définit les droits des autres utilisateurs.

Une permission de lecture vaut 4, une permission d'écriture vaut 2, une permission d'éxécution 1. Ces valeurs se cumulent de la manière suivante :
Lecture seule= 4
Lecture+écriture= 4+2 =6
Lecture+écriture+exécution= 4+2+1 =7
Ainsi, des droits de 644 signifient que le propriétaire du fichier pourra lire et écrire un fichier, le groupe et les autres ne pourront que le lire.

Changer la permission sur un répertoire ou un fichier se fait par l'intermédiaire d'un client FTP et s'appelle aussi chmod, du nom de la commande Unix/Linux qui permet de modifier ces droits.
Par défaut, Séquane tente de modifier ces droits pour permettre l'écriture le temps de la mise en ligne, puis revenir à des permssions moins élevées. Il est possible que les valeurs des droits posent problème sur votre hébergeur qui n'acceptera peut-être que des droits moins élevés.
Il convient donc que vous testiez ou que vous demandiez à votre hébergeur quelle valeur est possible.

NB : Chez l'hébergeur free.fr, les droits maximums sont de 700, il n'est pas possible de les changer.

Les lignes qui contrôlent les droits dans Séquane sont les lignes contenues dans les fichiers prof_ajout.php et ajouter_exo_suite.php
Les lignes à modifier pour les adapter à vos besoins sont les suivantes :

Dans prof_ajout.php
mkdir($rep,"0777");
(tente de créer un répertoire avec les permissions au maximum)
chmod ("exercice/".$login1, 0777);
(ouvre le répertoire du professeur avec les permissions au maximum)

ajout_exo_suite.php :
  chmod ("exercice"."/".$auth[0], 0777);
 ouvre le répertoire exercice du professeur en écriture
  $rep = "exercice/".$auth[0]."/".$chemidx;
  mkdir($rep,"0777");
crée le répertoire de l'exercice dans le dossier du professeur avec les permissions maximales.

 chmod ("exercice"."/".$auth[0], 0755);
 chmod ("exercice"."/".$auth[0]."/".$chemidx, 0755);
ferme le répertoire de l'exercice, du  professeur et de l'exercice en écriture
Mise à jour le Vendredi, 07 Octobre 2005 00:46