Vos extensions ne fonctionnent pas. Votre site ne se charge pas. Vous continuez à voir l’erreur « Allowed memory size exhausted » et il continue à vous dire d’augmenter votre limite de mémoire PHP. Qu’est-ce que c’est et comment résoudre cela ?

La limite de mémoire PHP existe pour empêcher les ressources monopolisant la RAM de faire tomber votre site. Mais elle peut aussi parfois causer des problèmes, comme lorsque vous installez une extension qui a besoin d’un peu plus de puissance et qui finit par couper l’accès à votre site.

Lorsque vous êtes confronté à l’écran blanc de la mort par manque de mémoire, vous devez régler ce problème immédiatement. Voyons ce qu’est la limite de mémoire PHP et comment la résoudre si vous atteignez le plafond de ressources.

Qu’est-ce que la limite de mémoire PHP ?

La limite de mémoire de PHP définit la quantité maximale de mémoire que tout script de votre site web peut utiliser. Mais qu’est-ce que cela signifie exactement ?

Votre site web est alimenté par des serveurs, qui ne sont que des ordinateurs spécialisés utilisés pour assurer le fonctionnement en arrière-plan d’un site web. Comme les ordinateurs normaux, ils utilisent des composants comme les processeurs, le stockage et la mémoire vive (RAM).

La mémoire vive est l’une des parties les plus importantes d’un serveur. Chaque programme et application occupe un peu de mémoire. Plus le programme est intensif, plus il prend de la mémoire. Lorsque vous manquez de mémoire, votre site fonctionnera lentement ou refusera même de se charger.

Les applications web, telles que les extensions WordPress, sont l’une des nombreuses choses qui peuvent occuper de la mémoire sur votre serveur. En général, ces applications prennent très peu de place et vous ne rencontrerez jamais de problèmes, sauf si votre hébergeur vous a donné très peu de mémoire pour travailler.

Mais il y a aussi un plafond strict sur la quantité de mémoire que le script d’une application PHP peut prendre sur votre serveur. Lorsque l’un de ces scripts dépasse la limite, c’est là que vous commencez à rencontrer des problèmes.

Vous verrez un écran blanc avec une erreur, et cela peut même interdire l’accès à l’ensemble de votre site.

Pourquoi y a-t-il une limite de mémoire ?

Imaginez que quelque chose se passe mal sur votre serveur. Peut-être qu’un programme reste coincé dans une boucle infinie et occupe de plus en plus de mémoire, ou qu’un attaquant vous piège en vous faisant installer un programme qui exécute un script malveillant pour accaparer toutes vos ressources.

Lorsque les processus PHP deviennent incontrôlables, la limite de mémoire sert à y mettre un terme avant qu’ils ne puissent faire s’écrouler tout votre serveur ou consommer toutes les ressources allouées pour le mois.

La plupart des scripts PHP légitimes sont très petits. Chaque script individuel ne devrait occuper qu’une quantité infime de mémoire vive, à moins que vous ne disposiez d’un programme inhabituel qui nécessite plus de ressources dans un script que la plupart des programmes n’en prendront jamais dans leur ensemble. Ces types d’extensions existent certainement, mais elles sont rares.

Si vous manquez de mémoire, il y a de fortes chances qu’un programme PHP soit défectueux ou malveillant, et l’erreur de limite de mémoire se déclenche.

Mais parfois, vous utilisez vraiment une grosse extension qui a besoin de mémoire supplémentaire. Certains hébergeurs fixent également la limite de mémoire PHP à un niveau très bas, ce qui peut entraîner l’apparition de l’erreur même si vous n’installez pas une application exceptionnellement gourmande en énergie.

Quoi qu’il en soit, vous vous retrouverez rapidement face à une erreur de mémoire épuisée.

L’erreur de mémoire épuisée

Vous avez donc rencontré l’erreur de mémoire épuisée. Vous êtes probablement confronté à un écran blanc avec un message d’erreur, soit sur l’ensemble de votre site, soit lors de l’exécution de certaines fonctions telles que l’envoi d’un formulaire.

Erreur de limite de mémoire épuisée telle qu'elle apparaît dans WordPress
Erreur de limite de mémoire épuisée telle qu’elle apparaît dans WordPress

C’est un problème grave, surtout lorsqu’il affecte l’ensemble de votre site web. Chaque heure qui passe est une perte de visiteurs.

Le coupable est probablement une extension très grosse ou mal configurée. Les extensions WordPress étant codées en PHP, elles sont soumises à la limite de mémoire PHP.

Vous pouvez trouver l’extension à l’origine du problème en désactivant vos extensions une par une jusqu’à ce que l’accès à votre site soit rétabli. Une fois que vous l’avez identifiée, vérifiez la documentation et voyez si elle indique la quantité de mémoire dont elle a besoin pour fonctionner.

Vous pouvez soumettre un ticket au développeur de l’extension si rien n’indique qu’elle est censée être une extension exceptionnellement gourmande, car elle peut être boguée. N’oubliez pas que la limite de mémoire PHP ne concerne que les scripts individuels, et non l’extension dans son ensemble. Il y a donc de fortes chances qu’un script soit bloqué dans une boucle infinie ou un autre problème.

Le problème pourrait peut-être aussi venir de votre côté. Peut-être que votre limite de mémoire est fixée à un niveau beaucoup trop bas pour que seule la plus petite des extensions puisse fonctionner correctement. Ou peut-être essayez-vous d’installer une extension qui vous oblige à augmenter la limite plus haut que la normale.

Dans les deux cas, vous devez essayer d’augmenter la limite de mémoire PHP. Nous allons vous montrer comment le faire maintenant.

Comment augmenter la limite de mémoire PHP dans WordPress

Avant de faire quoi que ce soit, il existe un moyen facile de vérifier la limite de mémoire actuelle de votre PHP sans avoir à fouiller dans des fichiers. Si vous utilisez WordPress 5.2 ou une version ultérieure, allez dans Outils > Santé du site dans votre zone d’administration.

Installez l’extension Health Check & Troubleshooting si vous ne le voyez pas.

Visualisation des informations sur la santé du site dans WordPress
Visualisation des informations sur la santé du site dans WordPress

Sous l’onglet Info, vous verrez votre limite de mémoire PHP. Si elle est déjà assez élevée, il se peut qu’une de vos extensions soit cassée.

Cependant, si vous trouvez qu’elle est très faible, vous devrez l’augmenter en modifiant votre fichier wp-config.php.

Cela ne résoudra pas toujours le problème. En fin de compte, la limite de mémoire PHP est fixée par votre hébergeur. Parfois, votre site est configuré de manière à utiliser moins de ressources que ce qu’offre votre hébergeur, et le fait de modifier vos fichiers peut régler ce problème. Mais si leur limite codée en dur est trop basse, vous ne pourrez pas l’augmenter, quelle que soit la valeur que vous aurez fixée manuellement.

Mais cela vaut la peine d’essayer, alors allons modifier ce fichier maintenant.

Quelle est la limite de mémoire PHP de Kinsta ?

Les utilisateurs de tous les plans Kinsta bénéficient d’une limite de mémoire PHP par défaut de 256 Mo. Cela devrait être plus que suffisant pour 99% de toutes les extensions WordPress et c’est en fait bien plus que ce que la plupart des extensions ne devraient jamais utiliser.

Si vous avez choisi l’hébergement WordPress de Kinsta et que votre site est correctement configuré, vous ne devriez jamais rencontrer d’erreur de limite de mémoire. La limite maximale est généralement fixée automatiquement dans les fichiers sans que vous ayez à intervenir.

Cela vaut peut-être encore la peine de vérifier qu’elle n’a pas été réglée trop bas par inadvertance dans les réglages de WordPress. Il est possible que quelque chose ait changé le nombre de ressources auxquelles vous avez accès et qu’elle ait été réduite.

Si vous avez encore des problèmes, vous pouvez toujours contacter le service de support de Kinsta et demander de l’aide pour résoudre le problème. Nous pouvons vous aider à identifier un fichier mal configuré que vous avez peut-être manqué.

Comment modifier la limite de mémoire PHP via FTP

Pour modifier le fichier wp-config.php, vous devez accéder à votre site par FTP ou SFTP. Cela vous permet de modifier des fichiers internes sensibles qui affectent le fonctionnement de votre site.

Vous ne changerez qu’une ligne, donc cela devrait être facile. Commencez par installer FileZilla ou un autre client FTP de votre votre choix. C’est gratuit, donc pas de souci. Avant de commencer, vous devriez également sauvegarder votre site web. Il est facile de casser accidentellement quelque chose en modifiant les fichiers du cœur.

Ouvrez FileZilla et saisissez vos données d’identification. Après quelques instants, vous devriez vous connecter à votre site.

Cliquez sur le dossier public et trouvez wp-config.php. Si vous ne trouvez pas public ou public-html, il peut être appelé root, www, ou le nom de votre site web.

Trouver wp-config dans FileZilla
Trouver wp-config dans FileZilla

Ouvrez wp-config. Veillez à ne rien modifier, sauf la ligne de limite de mémoire PHP, car il s’agit d’un fichier sensible qui pourrait endommager votre site web. Regardez jusqu’à ce que vous trouviez cette ligne : define( 'WP_MEMORY_LIMIT', '256M' );

Limite de mémoire WP telle qu'elle apparaît dans wp-config
Limite de mémoire WP telle qu’elle apparaît dans wp-config

Modifiez le nombre qui y figure, enregistrez le fichier et fermez FileZilla. C’est fait !

Comment modifier la limite de mémoire PHP dans cPanel

Certains hébergeurs ne vous permettent pas de modifier des fichiers par FTP. Ils vous donneront peut-être plutôt accès à cPanel. Si c’est votre cas, ne vous inquiétez pas – vous pouvez également modifier la limite de mémoire PHP de cette manière.

Première étape : Connectez-vous à cPanel en utilisant les informations d’identification fournies par votre hébergeur. Sur l’écran d’accueil, vous verrez une section Logiciel avec un bouton Sélectionner la version PHP.

Sélection d'une version de PHP dans cPanel
Sélection d’une version de PHP dans cPanel

Cliquez dessus et, en haut de l’écran, vous verrez les options « Switch to PHP ». Faites défiler vers le bas jusqu’à ce que vous voyiez memory_limit avec un menu déroulant. Cliquez dessus et modifiez le réglage que vous souhaitez. Cliquez sur Apply et vous avez terminé.

Tout le monde n’aura pas l’option Select PHP Version. À la place, vous pourriez voir MultiPHP Ini Editor. Si c’est le cas, vos étapes seront un peu différentes.

MultiPHP Ini éditeur dans cPanel
MultiPHP Ini éditeur dans cPanel

Vous devez cliquer sur ce bouton et, dans la fenêtre suivante, sous Configure PHP INI basic settings, vous devez ouvrir le menu déroulant et sélectionner votre domaine. Trouvez la section memory_limit et saisissez le nombre que vous souhaitez. Cliquez sur Apply pour enregistrer vos modifications.

Vous pouvez également essayer d’utiliser le gestionnaire de fichiers de cPanel. Cela ressemble beaucoup à l’accès à votre site par FTP. Sous la section Fichiers de votre page d’accueil, cliquez sur Gestionnaire de fichiers. Trouvez votre dossier public/public-html (ou quel que soit son nom) et ouvrez le fichier wp-config.php.

Trouvez la ligne WP_MEMORY_LIMIT comme indiqué dans la section ci-dessus et modifiez le nombre en fonction de vos souhaits. Enregistrez vos changements et assurez-vous de les appliquer, et c’est tout ce que vous devez faire.

Quelle devrait être la limite de mémoire PHP ?

Lorsque vous changez votre limite de mémoire, votre première réaction peut être de la fixer à 900 Mo ou quelque chose comme ça – le plus haut possible. Mais cela peut être en fait une très mauvaise idée.

Si un script de votre site venait à se casser, il pourrait rapidement devenir incontrôlable et faire planter tout votre serveur. Même si votre site est hébergé sur un matériel puissant, un seul script consommant toute la mémoire pourrait encore causer de sérieux problèmes.

Des scripts mal configurés, inhabituellement éprouvants, mais pas assez cassés pour causer des problèmes, pourraient également passer inaperçus. La plupart des scripts PHP sont très petits, et l’erreur de limite de mémoire sert d’avertissement pour signaler que quelque chose ne va pas dans l’administration. Si vous la réglez trop haut, vous risquez d’avoir des scripts erronés qui bloquent votre site sans que vous le sachiez.

Vous devez fixer votre limite de mémoire PHP aussi bas que possible tout en permettant à votre site de fonctionner normalement.

128 Mo est une bonne base de référence. C’est une quantité de mémoire décente qui prendra soin de la plupart des extensions intensives. Si vous savez que vous aurez besoin d’un peu plus de puissance, 256 Mo couvriront même les extensions les plus lourdes. Et si vous êtes sûr d’avoir une véritable centrale nucléaire, 512 Mo est le maximum absolu auquel vous devriez la fixer. Dans 90 % des cas, vous ne devriez jamais avoir besoin d’augmenter la limite de mémoire au-delà de 256 Mo.

Que faire si la modification de la limite de mémoire ne fonctionne pas ?

Si, après avoir modifié votre fichier PHP, vous rencontrez toujours l’erreur de mémoire, l’un des deux problèmes suivants se pose : votre hébergeur a alloué très peu de ressources, ou il y a un script PHP sur votre serveur qui prend beaucoup trop de mémoire.

Encore une fois, vous devez passer en revue et désactiver vos extensions jusqu’à ce que vous ayez identifié la coupable. Avec 128-256 Mo de mémoire, aucune extension ne devrait prendre autant de place sans en faire mention quelque part dans la documentation. Désactivez-la et informez les auteurs de l’extension de ce qui s’est passé.

Vous rencontrez toujours l’erreur même après que toutes les extensions ont été désactivées ? Il doit y avoir un conflit ou une autre application PHP à l’origine du problème. C’est plus que ce que vous pourrez gérer par vous-même, alors demandez de l’aide à votre hébergeur.

Si le problème n’est pas du tout une extension, la faute en revient probablement à votre hébergeur qui a fixé la limite de mémoire trop bas. Vous utilisez probablement un hébergement mutualisé, connu pour sa capacité à allouer une très faible quantité de mémoire – ce qui est compréhensible, car si un site utilise trop de mémoire vive, cela engorge l’ensemble du système pour des dizaines d’autres sites web.

Votre seul choix ici est de passer à un plan qui offre plus de ressources. Cela peut s’avérer coûteux, surtout si vous essayez simplement d’installer une extension intensive sur un nouveau site. Si vous n’avez pas encore beaucoup de visiteurs, toutes les autres ressources obtenues grâce à la mise à niveau ne vous aideront pas beaucoup.

Vous pouvez également passer à un hébergeur, comme Kinsta, qui vous offre plus de mémoire dès le départ.

Résumé

La limite de mémoire PHP existe pour une raison très légitime : vous ne voulez pas que des processus malveillants prennent plus de mémoire vive qu’ils ne sont censés en prendre. Mais lorsque vous atteignez la limite et que vous rencontrez un écran blanc de la mort en utilisant une extension légitime, cela peut être assez ennuyeux.

En fin de compte, c’est à votre hébergeur de décider de la quantité de mémoire PHP à laquelle vous avez accès. S’ils placent la barre trop bas, il est impossible de l’augmenter.

Cependant, il arrive que votre site utilise moins de ressources que celles auxquelles vous avez réellement accès. Dans ce cas, il est possible d’augmenter votre mémoire vive. Essayez de la régler sur 128 ou 256 Mo (comme l’option par défaut pour tous les plans Kinsta) car vous ne voulez pas qu’elle soit trop élevée.

Si aucune de ces méthodes ne fonctionne, c’est probablement un manque de ressources allouées qui est à l’origine du problème, plutôt qu’un réglage qui doit être modifié. Contactez votre hébergeur et demandez-lui comment en obtenir davantage, ou passez à un nouvel hébergeur comme Kinsta qui vous donne plus de mémoire vive que vous n’en aurez jamais besoin.