Correction : Bug Magento 1.8 « Memory limit has been reached »

Untitled

Après une mise à jour vers Magento 1.8 je n’avais plus aucune image de mes produits,   même problème  avec un Magento 1.8 tout neuf avec une base vierge.

impossible d’insérer une image,  message d’erreur : « Memory limit has been reached »

Après pas mal de recherche ±2 jours de perdu (Merci Magento), je me suis rendu compte qu’ils ont ajouté dans Magento 1.8 un test de memory_limit de php dans  /magento/lib/varien/image/Adpater/Gd2.php

/**
 * Converts memory value (e.g. 64M, 129KB) to bytes.
 * Case insensitive value might be used.
 *
 * @param string $memoryValue
 * @return int
 */
 protected function _convertToByte($memoryValue)
 {
 if (stripos($memoryValue, 'M') !== false) {
 return (int)$memoryValue * 1024 * 1024;
 } elseif (stripos($memoryValue, 'KB') !== false) {
 return (int)$memoryValue * 1024;
 }
 return (int)$memoryValue;

Problème, ce test est incomplet il ne prend pas en compte les paramétrages en Go « G »  ou en illimité -1  

Il génère donc une fausse erreur  [un bug].

_______________________________________________

SOLUTIONS

 Modifier les paramètres de serveur php :

Ne pas utiliser de fonction illimité (-1)  ou convertir les (Go) G en M (Mo) dans le fichier php.ini

l’emplacement varie selon les installations /etc/php5/apache2/php.ini

  • si la valeur memory_limit = 2G remplacé par 2048M

memory_limit = 2048M

  • si la valeur est memory_limit = -1  changez pour   par exemple 128M
  • Redémarrer le service ou le serveur pour que ce soit pris en compte.
service apache2 stop service apache2 start
  • Enfin videz la cache de Magento
rm /magento/var/session; rm /magento/var/cache;

Bizarrement ça ne sert a rien de le faire dans le fichier .htaccess

_______________________________________________

Si vous utilisez une interface PLESK  

  • Abonnement ► Gérer l’hébergement ► Général Personnaliser ► Paramètre PHP
  • memory_limit   ► Entrer une valeur personnalisé saisissez  128M 
  • NE LAISSEZ PAS ILLIMITE ou PAS DE VALEUR EN G (GO)
  • Redémarrer le service ou le serveur pour que ce soit pris en compte.
service apache2 stop service apache2 start
  • Enfin videz la cache de Magento
rm /magento/var/session; rm /magento/var/cache;

plesk-limit

_______________________________________________

Pour tester votre php  créez un fichier test.php  dans votre dossier magento, puis lancer le de votre navigateur :

test.php   contenant :

<?php
  1. // Affiche toutes les informations, comme le ferait INFO_ALL
  2. phpinfo();
  3. // Affiche uniquement le module d’information.
  4. // phpinfo(8) fournirait les mêmes informations.
  5. phpinfo(INFO_MODULES);
  6. ?>

, , , , , , ,

  1. Poster un commentaire

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :