php - PHP 5.3.3中的ini_set(“memory_limit”)根本不起作用

收藏

我以前有过这样的工作:

echo ini_get("memory_limit")."\n";
ini_set("memory_limit","256M");
echo ini_get("memory_limit")."\n";

这将输入:
32M
256M

在命令行执行的PHP脚本上。
我从5.2更新到5.3,从现在开始,这个指令根本不起作用:这给了我:
32M
32M

然后让我的脚本因一个致命的错误而失败…
我检查了PHP文档,并在谷歌上搜索了它,但没有找到任何不赞成使用“内存限制”的地方。
有人有解决办法吗?


最佳答案:

很可能您的sushosin已更新,它将suhosin.memory_limit的默认值从disabled更改为0(不允许对memory_limit进行任何更新)。
在Debian上,更改/etc/php5/conf.d/suhosin.ini
;suhosin.memory_limit=0

suhosin.memory_limit=2g
或者你喜欢的价值。您可以在http://www.hardened-php.net/hphp/changelog.html找到Sushosin的更改日志,其中显示:
改变了内存限制保护的实现方式

回复