PHP将memory_limit增加到128M以上

时间:2013-08-09 06:08:44

标签: php apache memory-limit suhosin ini-set

我使用标准Apache和PHP运行Debian Squeeze,通过aptitude安装。

不,我试着跑:

<?php
 echo ini_get("memory_limit")."\n";
 ini_set("memory_limit","1024M");
 echo ini_get("memory_limit")."\n";
?>

结果:1​​28M 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";
?>

结果:1​​28M 127M

亲切的问候

1 个答案:

答案 0 :(得分:2)

更改memory_limit被suhosin扩展程序阻止。

来自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。