Fatal error : Out of memory = IMPOSSIBLE DE MODIFIER LE FICHIER php.ini

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [Problème] Fatal error : Out of memory = IMPOSSIBLE DE MODIFIER LE FICHIER php.ini

    Bonjour,
    100% autodidacte, voilà 2 jours que je bloque sur mon site.
    A l'origine, j'ai voulu insérer un slideshow dans un de mes articles, j'ai donc procédé à la création d'un dossier "photos" pour ce slideshow. J'ai ensuite créé ce module que j'ai publié dans un de mes articles. Toutefois, ce message d'erreur apparait :
    Fatal error: Out of memory (allocated 82837504) (tried to allocate 18432 bytes) in /homepages/34/d402664920/htdocs/modules/mod_slideshowck/helper.php on line 300

    Après quelques recherches ici et là, j'ai compris qu'il fallait augmenter la mémoire allouée sur le fichier php.ini

    J'ai testé 2 choses qui ne fonctionnent pas :
    - modification du fichier php.ini depuis FileZilla mais l'ajout de la ligne "memory_limit = 128M" ou encore "memory_limit = 256M" ne change rien.

    - modification du fichier php.ini depuis WanpServer mais l'ajout de la ligne "memory_limit = 128M" ou encore "memory_limit = 256M" ne change rien.

    J'ai même essayé en diminuant au maximum la résolution des images et donc leur taille (ou poids) mais rien a faire !

    Je viens donc ici vous demander un peu d'aide.
    Cordialement,

    Me voilà bloqué avec ce module pourtant simple d'utilisation jusqu'ici.

  • #2
    Re : Fatal error : Out of memory = IMPOSSIBLE DE MODIFIER LE FICHIER php.ini

    Bonjour,

    La ligne en cause est:
    Code PHP:
    $img_big imagecreatefromjpeg($filetmp); 
    En PHP, les diverses imgcreatefrom* sont des gouffres à mémoire. Pour la création à partir d'une image jpg, la quantité de mémoire nécessaire à la création dépend d'une part de la version de la libjpeg utilisée sur le système, et de sa compilation, d'autre part du type FIF de l'image.

    En moyenne, avec une image JPEG bien optimisée, et dont les headers JFIF et EXIF ont été supprimés, il faut pour chaque pixel 4 octets (R,G,B,alpha). Si l'image conserve ses infos EXIF et FIF ou JFIF, chaque pixel peut nécessiter jusque 32 octets, dépendant de l'APN d'origine et de l'intensité des divers canaux.

    Donc, supposons une photo classique, en 1280x960, dans le meilleur cas, il faut 1280*960*4, soit 9.830.400 octets en RAM, plus l'espace nécessaire au tweak factor (espace bloc-notes utilisé par la fonction pour permettre les traitements sur image, soit 16 bits par pixel, donc dans ce cas 4.915.200 octets de plus. Donc au total, la moindre image de cette taille requiert, uniquement pour son chargement avant traitement 14.745.600 pixels, à multiplier par 4 si les infos EXIF et JFIF sont présentes.

    Ensuite, pour chaque traitement (rotate, resize...) il faut allouer un buffer de travail.

    A cette problématique, il faut également ajouter divers bugs dépendant à la fois de la version de PHP, de la version de GD cmpilée, et également de la libjpeg.

    Et pour finir de faire mal, si une image contient un EXIF défectueux (ce qui arrive parfois), même une image en 256*256 peut allègrement consommer plus de 100 mégas.

    Solution:

    Si possible, examiner le header de l'image avec un outil genre fotoxx (linux uniquement) ou JHead (Win, Mac, Linux) pour déterminer la cause du problème. http://www.sentex.net/~mwandel/jhead/
    Un header bancale peut être réparé en utilisant Gimp (charger l'image, Enregistrer sous... en changeant la qualité et passer en 70% par exemple).
    Pas de demande de support par MP.
    S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

    Commentaire


    • #3
      Re : Fatal error : Out of memory = IMPOSSIBLE DE MODIFIER LE FICHIER php.ini

      Bonjour,
      Donc si je comprends bien (ne riez pas, j'ai mis seulement 2 jours !!!), vous me conseillez de modifier mes images ? En les chargeant dans Gimp puis en les exportant en jpeg ? C'est pourtant la deuxième solution que j'avais déjà testée mais je vais réessayer...

      Sinon, d'autres pistes ??

      Commentaire


      • #4
        Re : Fatal error : Out of memory = IMPOSSIBLE DE MODIFIER LE FICHIER php.ini

        L'erreur se situant au niveau de imagecreatefromjpeg, il n'y a guère d'autre piste que celle documentée.
        Il est fort probable qu'une ou plusieurs images soient problématiques. Sur ces images, que raconte jhead à propos de leur header.

        Le traitement par Gimp implique de ne pas se contenter de récupérer l'image et de l'enregistrer, les headers seraient préservés, il faut soit la recompresser, soit utiliser après coup un optimiseur.
        Pas de demande de support par MP.
        S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

        Commentaire


        • #5
          Re : Fatal error : Out of memory = IMPOSSIBLE DE MODIFIER LE FICHIER php.ini

          Après plusieurs essais infructueux, je ne parviens pas à installer et à utiliser jhead. J'ai trouvé le fichier d'installation que j'ai lancé mais impossible de trouver l'icône pour lancer ce logiciel, ni sur mon bureau, ni dans "Démarrer"... je suis donc dans l'incapacité de vous dire ce que dit jhead sur le header de mes images.
          Existe-t-il une astuce pour y arriver ? Quelque chose qui m'aurait échappé ?

          J'ai en parallèle consulté les propriété d'une de ces images dans Gimp et j'ai accès à certaines infos sur l'EXIF mais je ne sais pas où pourrait se trouver une erreur.

          Commentaire


          • #6
            Re : Fatal error : Out of memory = IMPOSSIBLE DE MODIFIER LE FICHIER php.ini

            http://www.sentex.net/~mwandel/jhead/usage.html est la documentation de JHead, et dès la première ligne il ets précisé qu'il s'agit d'un outil en ligne de commande...

            Les propriétés de l'image dans Gimp ne fournissent poa sl'intégralité de sinformations EXIF/JFIF ou FIF, mai suniquement les champs les plus courants.
            Pas de demande de support par MP.
            S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

            Commentaire

            Annonce

            Réduire
            Aucune annonce pour le moment.

            Partenaire de l'association

            Réduire

            Hébergeur Web PlanetHoster
            Travaille ...
            X