【问题标题】:ini_set('memory_limit', ...) doesn't work and returns false; can't figure out whyini_set('memory_limit', ...) 不起作用并返回 false;不知道为什么
【发布时间】:2011-08-17 03:06:17
【问题描述】:
ini_set('memory_limit', '128M'); // Returns false; memory_limit unchanged

我无法找到可能导致此问题的原因列表。到目前为止我检查过:

  • 安全模式:禁用
  • disable_functions:空
  • php_admin_value:我找不到(有办法确定吗?)

我的想法用完了! ini_set 与其他参数(例如“display_errors”)一起正常工作

【问题讨论】:

  • 您使用的是哪个版本的 PHP?
  • 是否对传递给ini_set() 或只是memory_limit 的任何指令都失败了? memory_limit 的任何值是否失败,或者只是 128M?您如何验证该值未更改?我在这里的几台服务器上也注意到了这种行为,所以我很想看看我们是否遇到了同样的问题。
  • 您使用的是共享主机平台还是您自己设置/配置的机器?
  • @James:我使用的是 PHP 版本 5.2.6-1+lenny9。
  • @Phoenix:它仅因 memory_limit 而失败。我通过调用 ini_get 来验证该值是否未更改。

标签: php apache php-ini


【解决方案1】:

如果不是已经发布的 PHP 版本问题,请尝试检查机器上是否没有任何东西阻止您提高此限制。

How to check whether Suhosin is installed?

编辑(确定 Suhosin 已安装后):

配置详情在这里:http://www.hardened-php.net/suhosin/configuration.html 我怀疑/etc/php.d/ 中会有一个文件,您可以对其进行编辑以增加内存限制范围。您需要编辑的配置变量是:suhosin.memory_limit

【讨论】:

  • 宾果游戏!该服务器受 Suhosin Patch 0.9.10 保护。现在它是什么?我会尝试谷歌它,看看是不是问题
  • 嗯,可能是这个,但我找不到“永远不要超过 64M”的设置选项。你知道它可以配置在哪里吗?还是默认情况下以这种方式工作?无论如何,我为我们的网络管理员开了一张票,希望他能够解决这个问题
  • 好的,我们的网络管理员更改了 sushosin 选项,现在它可以工作了。 ty
【解决方案2】:

The manual 说:

在 PHP 5.2.1 之前,为了使用 该指令必须在 通过使用编译时间 --enable-memory-limit 在配置行中

这可能是您的问题的原因。

【讨论】:

  • 我们使用:PHP 版本 5.2.6-1+lenny9,所以“不幸的是”这不是问题 =(
猜你喜欢
  • 2012-04-13
  • 1970-01-01
  • 2013-08-23
  • 2011-07-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
  • 2013-05-14
  • 2017-10-30
相关资源
最近更新 更多