[wordpress 3.5.1] admin.php tried to increase memory_limit…

Image 11Cela fait deux fois, en moins de trois jours que mon serveur WEB crash lamentablement… Le premier coup j’avais simplement redémarré le bestiau sans trop y prêter d’attention (par manque de temps et puis le soleil, les terrasses toussa…).

Ce soir, alors que j’étais entrain d’écrire un article (oui je suis consciencieux en ce moment), rebelotte, mon admin wordpress me lache, plus moyen de me connecter à la machine en ssh… Cette fois-ci ça commence à me chauffer (il fait 35° dehors ça aide pas)… Je redémarre la VM et  je me penche un peu plus sur les logs de mon serveur :

kern.log me donne la chose suivante :

Des process apache qui se kill tout seul avec des « out of memory », ça sent pas bon….

J’ouvre pas la suite mon syslog, dans lequel on peut y voir des choses encore plus intéressante :

Les scripts /wp-admin/admin.php et wp-includes/class-wp-image-editor-gd.php tentent d’augmenter la mémoire alloué aux scripts php en passant la valeur à 256mo (au passage « attacker » ça fait vachement tipiak mais c’est simplement l’adresse de mon client ;))

Je regarde alors ces fichiers de plus près, aux fameuses lignes 90 et 109 et je trouve la chose suivante

Comme par hasard on y trouve  à chaque fois une variable qui se nomme WP_MAX_MEMORY_LIMIT

un petit tour dans mon php.ini pour vérifier la valeur alloué par défaut :

Je recherche ensuite la variable WP_MAX_MEMORY_LIMIT dans les fichiers propres à wordpress :

Je trouve effectivement un fichier wp-includes/default-constants.php qui contient une variable WP_MAX_MEMORY_LIMIT alloué à ‘256M’ (comparé a mes petits 128M du php.ini il y a effectivement un problème).

En ouvrant le fichier en question j’y trouve :

Qui grossièrement traduit me dit que :

si WP_MAX_MEMORY_LIMIT n’est pas défini, je lui alloue la constante 256M.

Solution :

Certains proposent de passer la memory_limit à 256 et plus dans le php.ini pour résoudre le problème… Franchement je ne suis pas fan de cette solution, c’est un blog perso et il n’y a pas de raison que cela me bouffe autant de mémoire pour fonctionner…

La solution la plus judicieuse est de définir la variable WP_MAX_MEMORY_LIMIT dans le fichier wp-config.php

en ajoutant :

On enregistre et on pense bien à redémarrer Apache.

Suite à ça, je n’ai plus les messages d’erreur dans mon syslog, ma machine respire, tout va bien dans le meilleur des mondes :

Au passage, merci à toi

About Raphaël DROITECOUR

Ingénieur réseaux & systèmes, passionné par l'univers Unix/Linux, la virtualisation et les réseaux dans leur ensemble. J'aime à partager (lorsque mon planning me le permet) mes découvertes et recherches via ce blog.
This entry was posted in OpenSource, Système and tagged , , , , , , , , , . Bookmark the permalink.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *