Dotclear

Ticket #497 (closed defect: fixed)

Opened 17 years ago

Last modified 16 years ago

Permission denied sur Unlink avec IIS7

Reported by: Mattk Owned by: xave
Priority: normal Milestone: 2.1.6
Component: module:core Version: 2.1
Severity: normal Keywords:
Cc:

Description

Problème rencontré lors de l'installation/mise à jour de plugins depuis une url : le plugin s'installe, mais un PHP Warning apparaît :

PHP Warning:  unlink(<chemin d'accès>\inc/../plugins/179) [<a href='function.unlink'>function.unlink</a>]: Permission denied in <chemin d'accès>\inc\core\class.dc.modules.php

Une solution trouvée consiste à appeler fclose avant tout appel à la fonction unlink sur un fichier. Dans le cas présent, le "bug" a été résolu avec la manipulation suivante :

Inc/core/class.dc.modules.php ligne 254 et 255 remplacer :

$zip->unzipAll($target);
unlink($zip_file);

par :

$zip->unzipAll($target);
$zip->close();
unlink($zip_file);

En réalité le warning apparaîtra sur toute manipulation de fichiers destinés à être supprimés par unlink. Propre à IIS, cet unlink impossible vient de la façon dont est géré la concurrence d'accès aux fichiers par Windows.

Attachments

class.dc.modules.php Download (11.9 KB) - added by Mattk 17 years ago.
class.dc.modules modifié

Change History

Changed 17 years ago by Mattk

class.dc.modules modifié

comment:1 Changed 17 years ago by Mattk

Je viens de rajouter en fichier joint mon class.dc.modules qui corrige toutes les possibilités d'erreur sur l'unlink avec IIS. Il n'y a que la méthode statique installPackage qui a subit des modifications.

Je n'ai trouvé aucune autre solution qui peut corriger ce problème.

comment:2 Changed 16 years ago by xave

  • Owner changed from olivier to xave
  • Status changed from new to assigned
  • Milestone changed from 2.2 to 2.1.6

Allez va, c'est bien parce que c'est plus propre, parce que c'est pas tous les jours qu'on fera une modif pour un IIS. :)

comment:3 Changed 16 years ago by xave

  • Status changed from assigned to closed
  • Resolution set to fixed

(In [2802]) Cleanly close zip file before deletion. Closes #497.

Note: See TracTickets for help on using tickets.

Sites map