1 votes

Suhosin.memory_limit ne permet pas à PHP d'utiliser plus de mémoire.

J'ai un serveur où la limite de mémoire de PHP est de 256M. Certains scripts ont besoin de plus de mémoire et font un ini_set('memory_limit', '256M') ; mais depuis que Suhosin est installé et activé, je trouve ceci dans le fichier journal

Sep 17 14:06:42 www-01 suhosin[28934]: ALERT - script tried to increase memory_limit to 536870912 bytes which is above the allowed value (attacker '127.0.0.1', file '/xxx/generate_docs.php', line 45) 

Mais suhosin est configuré avec

suhosin.memory_limit = 2048M

Les valeurs de PHP memory_limit et de suhosin.memory_limit sont confirmées par phpinfo(). Pourquoi PHP ne peut pas demander plus de mémoire avec cette configuration ?

Ce script s'exécute bien pour toute valeur de limite de mémoire inférieure à 256M, mais pour une valeur supérieure j'ai l'erreur et memory_limit ne change pas.

<?php
echo ini_get('memory_limit') . "<br>";
ini_set('memory_limit', '512M');
echo ini_get('memory_limit') . "<br>";
echo ini_get('suhosin.memory_limit') . "<br>";
echo "end<br>";

le résultat est

256M
256M
2048M
end

1voto

Cédric Girard Points 377

Alleluia. Poser une question m'aide à trouver le problème.

En fixant suhosin.memory_limit à 1024 (2048 était pour tester avec une valeur limite), il s'exécute, et mon script me dit

256M
512M
1024M
end

Même problème que https://stackoverflow.com/questions/9276212/php-settings-memory-limits-1024m-does-not-work/16854780#16854780 (même serveur, d'ailleurs)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X