Suhosin.memory_limit 不允许 PHP 使用更多内存

Suhosin.memory_limit 不允许 PHP 使用更多内存

我有一台服务器,其中 PHP memory_limit 为 256M。某些脚本需要更多内存,并执行 ini_set('memory_limit', '256M'); 但由于 Suhosin 已安装并激活,我在日志文件中发现此信息

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) 

但 suhosin 配置了

suhosin.memory_limit = 2048M

PHP memory_limit 和 suhosin.memory_limit 值均由 phpinfo() 确认。为什么 PHP 无法通过此设置请求更多内存?

此脚本对于 256M 以下的任何内存限制值都能正常运行,但对于更高的值,我收到错误并且 memory_limit 不会改变。

<?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>";

输出是

256M
256M
2048M
end

答案1

阿利路亚。提出问题能帮助我找到问题所在。

通过将 suhosin.memory_limit 设置为 1024(2048 用于使用边缘值进行测试),它运行,并且我的脚本告诉我

256M
512M
1024M
end

同样的问 https://stackoverflow.com/questions/9276212/php-settings-memory-limits-1024m-does-not-work/16854780#16854780 (顺便说一下,是同一台服务器)

相关内容