Maison >développement back-end >tutoriel php >Pourquoi mon script PHP rencontre-t-il l'erreur « Taille de mémoire autorisée » même lorsque PHPInfo affiche suffisamment de mémoire ?

Pourquoi mon script PHP rencontre-t-il l'erreur « Taille de mémoire autorisée » même lorsque PHPInfo affiche suffisamment de mémoire ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-08 05:53:02626parcourir

Why Is My PHP Script Hitting the

Comprendre l'erreur « Taille de mémoire autorisée de X octets épuisés »

La tristement célèbre erreur « Taille de mémoire autorisée de X octets épuisés » en PHP laisse souvent les développeurs perplexes, surtout lorsque PHPInfo indique une limite de mémoire apparemment adéquate. Pour percer ce mystère, examinons les causes possibles.

Configurations PHP multiples

La limite de mémoire PHP peut être configurée à différents endroits :

  • Php.ini du système maître
  • Configuration d'Apache
  • Php.ini de CLI/CGI
  • Fichiers .htaccess
  • Code utilisant ini_set()

Sortie de PHPInfo

PHPInfo affiche deux valeurs pour memory_limit : "Master" et "Local". La valeur « Maître » représente la limite compilée par défaut, tandis que la valeur « Locale » reflète la limite effective réelle. Si la valeur "Local" diffère de la valeur "Maître", des modifications ont été apportées dans l'un des emplacements de configuration mentionnés ci-dessus.

CLI vs. Webserver

PHP utilise généralement des fichiers .ini distincts pour les opérations en ligne de commande (CLI) et sur le serveur Web. La vérification de PHPInfo à partir de la CLI donnera des valeurs de limite de mémoire différentes de la vérification dans un script Web.

Dépannage

Pour diagnostiquer l'erreur « Taille de mémoire autorisée », envisagez les étapes de dépannage suivantes :

  • Vérifiez la valeur PHPInfo "Local" pour memory_limit afin d'identifier la limite effective réelle.
  • Examinez les fichiers de configuration Apache et les fichiers .htaccess pour trouver une limite de mémoire remplace.
  • Si la limite de mémoire a été modifiée via ini_set() dans le code, supprimez l'appel ou ajustez le paramètre memory_limit.
  • Assurez-vous que la ligne de commande et le fonctionnement du serveur Web utilisent le bon . ini et configurations de limite de mémoire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn