3

我已经通过 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

我可以使用 phpinfo(); 验证此设置,在service apache2 restart.

为什么我不能将内存限制设置在 128M 以上?

笔记:

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

结果:128M 127M

亲切的问候

4

1 回答 1

2

memory_limitsuhosin 扩展阻止了 更改。

来自文档:http ://www.hardened-php.net/suhosin/configuration.html#suhosin.memory_limit

suhosin.memory_limit

类型:整数 默认值:0 只要脚本不在安全模式下运行,它们就可以自由地将 memory_limit 更改为它们想要的任何值。Suhosin 改变了这一事实,并且当此选项保留为 0 时,不允许将 memory_limit 设置为大于脚本开始时的值。大于 0 的值意味着 Suhosin 将不允许脚本将 memory_limit 设置为高于此配置的值限制。例如,如果您想以 16M 的限制正常运行脚本,但图像处理脚本可能会将其提高到 20M,这很有用。

因此启用 suhosin 扩展后,您需要更改它并重新启动 apache。

于 2013-08-09T06:18:59.893 回答