13 votes

La taille de mémoire autorisée de 134217728 octets est épuisée.

Comment résoudre ce problème et pourquoi il se produit ?

Journal du serveur Zend :

PHP Erreur fatale : La taille de mémoire autorisée de 134217728 octets est épuisée. (tentative d'allocation de 538798977 octets) en C:\Program Fichiers (x86) \Zend\Apache2\htdocs\test\modules\main.php sur la ligne 3

Le dossier main.php ne produit pas d'erreur, s'il est exécuté directement depuis le navigateur. Cependant, si j'utilise ses fonctions depuis un autre fichier PHO, alors Zend Log affiche l'erreur mentionnée ci-dessus.

14voto

shail Points 1471

J'ai également rencontré ce problème.

Augmentez les variables suivantes pour que l'exécution de votre page ne s'arrête pas :

  • max_input_time
  • memory_limit
  • max_execution_time

10voto

slugonamission Points 5688

Soit vous augmentez la limite de mémoire dans php.ini ou essayez d'optimiser les grandes structures de données (comme les tableaux) de votre application.

Dans tous les cas, si votre application PHP utilise 128 Mo de RAM, il y a probablement un problème.

De plus, comme l'a fait remarquer Fluffeh dans les commentaires, que diable faites-vous pour utiliser 500 Mo de RAM ?

7voto

Essayez ça :

ini_set('memory_limit', '-1');

php.net/memory_limit

Il utilisera la mémoire du serveur de façon illimitée.

2voto

RafaSashi Points 1492

En plus de l'utilisateur1427811, vous pouvez surveiller time_limit y memory_limit avant et après le téléchargement du fichier :

function custom_put_contents($source_url='',$local_path=''){

    $time_limit = ini_get('max_execution_time');
    $memory_limit = ini_get('memory_limit');

    set_time_limit(0);
    ini_set('memory_limit', '-1');      

    $remote_contents=file_get_contents($source_url);
    $response=file_put_contents($local_path, $remote_contents);

    set_time_limit($time_limit);
    ini_set('memory_limit', $memory_limit); 

    return $response;
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X