Ticket #497 (closed defect: fixed)
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
Change History
Changed 17 years ago by Mattk
-
attachment
class.dc.modules.php
added
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.
class.dc.modules modifié