IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Echec rename d'un fichier du cache


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 9
    Par défaut Echec rename d'un fichier du cache
    Bonjour,

    Je suis en train de tester une application Symfony 2.8.22 avec PHP 5.6.26 sous Windows avec IIS.
    J’affiche 10 pages de l’application dans 10 instances de navigateurs, ces pages affichent des données de suivi de process et sont rafraichies toutes les 3 minutes.
    Je laisse les 10 pages dans cette situation pendant une longue durée (1 jour ou plus).
    Après ce délai, plusieurs pages sont souvent en erreur avec l’erreur décrite ci-dessous.

    Voici des extraits des traces :

    [2017-09-26 02:32:47.669189] php.DEBUG: rename(C:\inetpub\wwwroot\MonProjet\app\cache\dev\appEBF5.tmp,C:\inetpub\wwwroot\MonProjet\app\cache\dev/appDevDebugProjectContainerUrlMatcher.php):
    Accés refusé. (code: 5)
    {"type":2,"file":"C:\\inetpub\\wwwroot\\MonProjet\\vendor\\symfony\\symfony\\src\\Symfony\\Component\\Filesystem\\Filesystem.php","line":278,"level":28928} []

    [2017-09-26 02:32:47.966006] request.CRITICAL: Uncaught PHP Exception Symfony\Component\Filesystem\Exception\IOException: "Cannot rename "C:\inetpub\wwwroot\MonProjet\app\cache\dev\appEBF5.tmp"
    to "C:\inetpub\wwwroot\MonProjet\app\cache\dev/appDevDebugProjectContainerUrlMatcher.php"."
    at C:\inetpub\wwwroot\MonProjet\vendor\symfony\symfony\src\Symfony\Component\Filesystem\Filesystem.php line 279
    {"exception":"[object] (Symfony\\Component\\Filesystem\\Exception\\IOException(code: 0):
    Cannot rename \"C:\\inetpub\\wwwroot\\MonProjet\\app\\cache\\dev\\appEBF5.tmp\" to \"C:\\inetpub\\wwwroot\\MonProjet\\app\\cache\\dev/appDevDebugProjectContainerUrlMatcher.php\".
    at C:\\inetpub\\wwwroot\\MonProjet\\vendor\\symfony\\symfony\\src\\Symfony\\Component\\Filesystem\\Filesystem.php:279)"} []
    Le code provoquant l’exception est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
       public function rename($origin, $target, $overwrite = false)
        {
            // we check that target does not exist
            if (!$overwrite && $this->isReadable($target)) {
                throw new IOException(sprintf('Cannot rename because the target "%s" already exists.', $target), 0, null, $target);
            }
     
            if (true !== @rename($origin, $target)) {
                throw new IOException(sprintf('Cannot rename "%s" to "%s".', $origin, $target), 0, null, $target);
            }
        }
    Lig 278 : @rename($origin, $target)
    Lig 279 = 2e throw

    J’ai lu quelques articles qui donnent 2 pistes :
    - la fonction PHP rename pourrait parfois mal fonctionner sous Windows
    - IIS pourrait manquer de droits sur le dossier de l’application (ce dont je doute car certaines écritures fonctionnent)

    Ce problème est-il connu ? Si oui, comment le résoudre ?

    Merci

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2013
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2013
    Messages : 739
    Par défaut
    Bonjour,
    j'ai pas lu toute la discussion mais je me souviens très bien que :
    avec symfony2.8 le cache généré contient des fichiers avec des noms très longues trés difficile à gérer sous windows
    (on ne peux pas les renommer ou les supprimer sous windows que ce soit avec php ou meme manuellement)
    c'est mieux de migrer vers symfony3 ou changer l'OS .. sinon tu peux ne pas trouver de solution .

  3. #3
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 9
    Par défaut Echec rename d'un fichier du cache
    Bonjour,

    Merci pour la réponse.

    Effectivement, il peut y avoir des pbs avec les noms très longs.

    Mais dans ce cas, je ne suis pas sûr que ce soit la cause.

    On demande à la fonction "rename" de renommer : "C:\inetpub\wwwroot\MonProjet\app\cache\dev\appEBF5.tmp"
    en "C:\inetpub\wwwroot\MonProjet\app\cache\dev/appDevDebugProjectContainerUrlMatcher.php"

    Ces noms ne me semblent pas excessivement longs.

    Cdt

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2013
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2013
    Messages : 739
    Par défaut
    il faut faire attention :
    - les chemins utilisés contiennent des "/" et "\" !!
    - il se peux que le nouveau nom de fichier est déjà utilisé par un autre.
    - le fichier cible par la modification est en cours d'utilisation ( écriture ou lecture)

  5. #5
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 9
    Par défaut [2.x] Echec rename d'un fichier du cache
    Bonjour,

    Merci pour la réponse.

    Je suis d'accord avec ces constats.

    Le pb est que ce code est fourni par Symfony. Ce n'est pas du code applicatif.
    Il n'est donc pas de mon ressort de modifier le code effectuant ce renommage.

    Une migration de l'application en PHP 7 et Symfony 3 est prévue ces prochains mois.

    Je verrai si la migration élimine ce pb. Il est possible que la fonction "rename" de PHP ait été améliorée en version 7.

    Cdt.

  6. #6
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 9
    Par défaut Echec rename d’un fichier du cache
    Bonjour,

    L'application a été migrée en Symfony 3. Ce pb subsiste.
    La migration en PHP 7 est prévue dans qq semaines.

    Cdt

Discussions similaires

  1. Enlever l'écran " ces fichiers sont cachés" !
    Par magic charly dans le forum Windows XP
    Réponses: 1
    Dernier message: 14/12/2006, 07h55
  2. Peut-on comparer un fichier du cache avec un fichier qu'on veut précharger ?
    Par 12_darte_12 dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 05/12/2006, 12h13
  3. [C#]Folder tree view et fichier/répertoire caché
    Par bilb0t dans le forum Windows Forms
    Réponses: 5
    Dernier message: 02/02/2006, 16h46
  4. [C#] Savoir si un fichier est caché
    Par Oberown dans le forum C#
    Réponses: 1
    Dernier message: 19/12/2005, 17h06
  5. [HTML] Problème mise à jour des fichiers en cache
    Par El Riiico dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 05/09/2005, 17h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo