我已经运行了通过aptitude安装的带有标准Apache和PHP的Debian Squeeze。
不,我尝试运行:
<?php
echo ini_get("memory_limit")."\n";
ini_set("memory_limit","1024M");
echo ini_get("memory_limit")."\n";
?>
结果:128M 128M
我试图改变这种行为和一些事实的方法:
/etc/php5/apache2/php.ini:
safe_mode = Off
memory_limit = 128M
/etc/php5/apache2/conf.d/suhosin.ini:
[suhosin]
suhosin.memory_limit = 2048M
我可以在
service apache2 restart
之后使用phpinfo();验证此设置。为什么我不能将内存限制设置为128M以上?
注意:
<?php
echo ini_get("memory_limit")."\n";
ini_set("memory_limit","127M");
echo ini_get("memory_limit")."\n";
?>
结果:128M 127M
亲切的问候
最佳答案
suhosin扩展阻止memory_limit
的更改。
来自位于http://www.hardened-php.net/suhosin/configuration.html#suhosin.memory_limit的文档
suhosin.memory_limit
类型:整数
默认值:0
只要脚本不在其中运行
safe_mode他们可以随意将memory_limit更改为任何值
他们要。 Suhosin改变了这一事实,不允许设置
memory_limit的值大于脚本开始时的值,
当此选项保留为0时。大于0的值表示
Suhosin将不允许脚本将memory_limit设置为一个值
超过此配置的硬限制。例如,如果您
想要以16M的限制正常运行脚本,但是图像
处理脚本可能会将其增加到20M。
因此,在启用suhosin扩展名的情况下,您需要对其进行更改并重新启动apache。