Comment résoudre PHP Erreur fatale: taille de mémoire autorisée de 8388608 octets épuisés

Une des erreurs les plus courantes et frustrantesrencontré par les codeurs PHP lit: "Erreur fatale: taille de mémoire autorisée de 8388608 octets épuisés ..." suivi de quelque chose comme "(essayé d'attribuer XXXX octets) dans /home/www/file.module à la ligne 12." Cette erreur PHP fatale recadre parce que, par défaut, PHP a une limite d’utilisation de la mémoire de 8 Mo pour tout script donné. En fait, c’est une bonne chose, car vous ne voulez pas qu’un script PHP malhonnête arrête votre serveur en monopolisant toute la mémoire. Mais parfois, vous aurez un script PHP qui dépasse normalement la limite de 8 Mo (dire, pour importer ou télécharger) Pour contourner le message d'erreur «Erreur irrécupérable: taille de mémoire autorisée de 8388608 octets épuisés…», insérez simplement cette ligne de code dans votre script en haut:

ini_set (“memory_limit”, ”16M“);

memory_limit

Cela va définir votre limite de mémoire à 16 Mo, plutôtque 8 MB. Vous pouvez et devez manipuler ce nombre afin qu'il soit aussi faible que possible sans répéter ce message d'erreur. Cela ne modifiera que la limite de mémoire pour ce fichier PHP particulier.

Alternativement, vous pouvez modifier votre fichier php.ini pour augmenter la limite de mémoire. Cela affectera tous les scripts sur votre serveur. Ouvrez simplement php.ini et trouvez la ligne qui lit “memory_limit” et modifiez-la:

memory_limit = 16M

Erreur fatale: la taille de mémoire autorisée de 134217728 a été épuisée

J'ai remarqué dans mon propre PHP.Fichier ini que mon défaut est beaucoup plus élevé à 128M. Donc, si je recevais un jour ce message d'erreur, il se lirait ainsi: «Erreur fatale: taille mémoire autorisée de 134217728 octets épuisés…» et, de toute évidence, un problème beaucoup plus important. Mais la solution de contournement est la même: «Erreur fatale: taille de mémoire autorisée de 8388608 octets épuisés…» ou «Erreur fatale: taille de mémoire autorisée de 16777216 octets épuisés…» ou peu importe. Apparemment, la valeur par défaut memory_limit a été augmentée de 8 millions à 16 millions dans PHP 5.2.0 et est maintenant de 128 millions pour PHP 5.3.0, ce qui expliquerait pourquoi vous ne pouvez pas recevoir ce message d'erreur du tout.

Vous pouvez également désactiver la limite de mémoire en définissant memory_limit sur -1 dans PHP.ini.

memory_limit = -1

Ce n’est généralement pas une bonne idée, pour des raisons évidentes.

Remarque: vous pouvez également utiliser la ligne memory_limit dans votre page .htaccess.

Rappelez-vous qu’il ne s’agit que d’une solution de contournement. Vraiment, votre script PHP devrait ne pas dépasser 8 Mo, à moins que votre téléchargement de fichiers oufaire quelque chose d'autre qui nécessite évidemment beaucoup de mémoire. Ce que vous devriez vraiment faire, c'est essayer de comprendre pourquoi votre script utilise autant de mémoire et d'essayer de le réparer. Une façon de déterminer la quantité de mémoire utilisée par votre script PHP consiste à utiliser la fonction PHP memory_get_usage (). Faites-le simplement écho à n'importe quel moment de votre script pour savoir où votre utilisation de la mémoire est en train d'augmenter:

echo memory_get_usage ();

Si vous recevez ce message d'erreur dans Drupal ou Joomla, le coupable est probablement un nouveau module ou package. Par exemple, dans Drupal, la page admin / modules se charge chaque module dans votre installation Drupal, qui peut obtenirpoilu si un module personnalisé est bogué, corrompu ou piraté. Essayez de désactiver les modules un par un pour identifier le problème. En outre, certains fournisseurs d’hébergement ignorent vos tentatives de modification des limites de mémoire de votre code PHP. Vous devrez peut-être contacter le support technique de votre hébergement pour vous aider. J'ai parfois constaté que je devais éditer le fichier php.ini et parfois mettre le code dans le fichier .htaccess. Quoi qu'il en soit, espérons-le, ces informations sont suffisantes pour vous aider à trouver votre chemin!

0

Articles similaires

laissez un commentaire