Taille de mémoire autorisée épuisée
PHP a atteint le plafond qu'il a été donné et arrêté. Le nombre dans le message est la limite, pas le montant dont votre site a besoin.
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes)
Relever la limite assez pour récupérer le site, puis trouver ce qui l'a consommé. Une limite relevée sans cette deuxième étape est de nouveau relevée le mois prochain, et le numéro dans le message ne vous dit rien sur quel code était responsable.
Les causes les plus probables d’abord.
Parcourez la liste dans l’ordre. Vérifiez chaque cause avant de modifier quoi que ce soit : les correctifs diffèrent et une supposition coûte plus cher qu’une commande.
| Cause | Comment vérifier | Correctif |
|---|---|---|
| Une image redimensionnée | L'erreur apparaît sur le téléchargement ou sur un écran média-bibliothèque, et le fichier en cause est grand. | Donnez la redimension suffisamment de mémoire ou redimensionner avant le téléchargement. Une caméra JPEG peut avoir besoin de plusieurs fois de sa taille de fichier pour décompresser. |
| Une requête chargeant tout dans un tableau | L'erreur se pose sur une archive, une exportation ou un rapport - n'importe où posts_per_page est -1. | Paginez la requête. La saisie de chaque ligne pour les compter est la version la plus courante de ce code de plugin. |
| Options automatiquement chargées | La taille automatiquement chargée est mesurée en mégaoctets. Chaque requête la paie, de sorte que l'erreur peut apparaître n'importe où. | Déplacez les plus grandes options hors de l'autoload. Les plugins qui stockent les journaux ou les caches dans wp_options sont la raison habituelle. |
| La limite est simplement faible | Le message nomme une limite bien inférieure à 256M sur un site avec un ensemble de plugins ordinaires. | Levez WP_MEMORY_LIMIT à quelque chose de moderne. Un défaut de 40M est une décennie dépassée. |
| Une importation tenant chaque rangée | La mémoire grimpe régulièrement à travers un travail de longue durée plutôt que de se faufiler à la fois. | Procéder en morceaux et libérer chaque lot. La mémoire qui ne grandit que jamais est un travail qui ne libère jamais ce qu'il a lu. |
Corriger l’erreur, étape par étape.
Les commandes supposent un accès à WP-CLI et au terminal. Si vous n’en disposez pas, chaque étape explique comment procéder depuis le tableau de bord ou via SFTP.
Lisez la limite que vous frappez en fait
Il y en a deux : PHP propre, et WordPress propre en plus.
php -i | grep '^memory_limit' wp config get WP_MEMORY_LIMIT
Levez-le assez pour charger le site à nouveau
C'est le triage, il vous achète le tableau de bord pour que vous puissiez faire l'étape suivante.
wp config set WP_MEMORY_LIMIT '256M' wp config set WP_MAX_MEMORY_LIMIT '512M'
Mesurer les options chargées automatiquement
Chaque demande paie avant qu'elle ne fasse autre chose.
wp db query "SELECT ROUND(SUM(LENGTH(option_value))/1024/1024, 2) AS mb FROM \$wpdb->options WHERE autoload='yes';"
Trouvez les plus grands délinquants par leur nom
Le haut de cette liste est généralement un plugin stockant quelque chose qu'il ne devrait pas.
wp db query "SELECT option_name, ROUND(LENGTH(option_value)/1024, 1) AS kb FROM \$wpdb->options WHERE autoload='yes' ORDER BY LENGTH(option_value) DESC LIMIT 10;"
Confirmer la correction en vertu de la limite d'origine
Remettez la limite là où elle était et rechargez la page qui a échoué. Si elle tient, vous avez corrigé la cause plutôt que le symptôme.
wp config set WP_MEMORY_LIMIT '128M'
Ce que la plateforme prend en charge.
La mémoire est dimensionnée à partir du plan plutôt que d'un par défaut partagé, donc le point de départ est un nombre moderne au lieu d'un dix-années, et il appartient à votre conteneur seul. Le tableau de bord montre la mémoire d'un site est en fait en utilisant contre ce qu'il a, qui est la mesure qui transforme cette erreur d'une conjecture en une décision.
Questions fréquentes.
Combien de mémoire WordPress a besoin ?
Pourquoi le message mentionne-t-il une petite allocation?
Puis-je élever la limite pour toujours ?
Pourquoi ça n'arrive qu'en wp-admin ?
Si le problème vient d’ailleurs.
Ces erreurs peuvent se présenter de façon similaire dans le navigateur.