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