web-dev-qa-db-fra.com

Mémoire autorisée de 134217728 octets épuisés

Chaud pour résoudre ce problème et pourquoi cela se produit?

Journal Zend Server:

Erreur irrécupérable PHP: la taille de mémoire autorisée de 134217728 octets est épuisée (essayé d'allouer 538798977 octets) dans C:\Program Files (x86)\Zend\Apache2\htdocs\test\modules\main.php à la ligne 3

Le fichier main.php ne génère aucune erreur s'il est exécuté directement à partir du navigateur. Cependant, si j'utilise ses fonctions à partir d'un autre fichier PHO, Zend Log imprime l'erreur susmentionnée.

11
You Kuper

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
13
shail

Augmentez la limite de mémoire dans php.ini ou essayez d'optimiser les grandes structures de données (telles que les tableaux) en dehors de votre application.

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

En outre, comme l'a noté Fluffeh dans les commentaires, que faites-vous pour utiliser 500 Mo de RAM?

10
slugonamission

Essaye ça:

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

php.net/memory_limit

Cela prendra une utilisation illimitée de la mémoire du serveur.

6
user1427811

En plus de l'utilisateur 1427811, vous pouvez surveiller time_limit et 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;
}
1
RafaSashi