【问题标题】:Allowed memory size exhausted, tried to allocate xx bytes [duplicate]允许的内存大小已用尽,尝试分配 xx 字节 [重复]
【发布时间】:2017-10-01 18:33:24
【问题描述】:

在我服务器上的错误日志文件中有一些此类错误:

  • PHP 致命错误:允许的 268435456 字节的内存大小已用完
    (试图分配 86 个字节)在 ....(一个 php 文件,在线..)
  • PHP 致命错误:允许的内存大小为 268435456 字节已用尽 (试图分配 2 个字节)在 ....(一个 php 文件,在线..)

对于每个错误,建议的分配字节数低于 100 字节。

这是否意味着只增加 100 字节的内存就可以解决所有问题?

我怎么知道是什么脚本占用了这么多内存?

我的商店是使用 Prestashop 1.5.6.2 构建的。

我得到的完整错误信息如下:

Allowed memory size of 268435456 bytes exhausted (tried to allocate 92 bytes) in ../classes/db/DbPDO.php on line 101

101行如下:

return $result->fetch(PDO::FETCH_ASSOC);

这一行是以下代码的一部分:

    public function nextRow($result = false)
{
    if (!$result)
        $result = $this->result;
    return $result->fetch(PDO::FETCH_ASSOC);
}

我不是开发人员,在此先感谢您在此问题上提供的任何帮助。

帕特里克

提前感谢您的任何回复。

帕特里克

【问题讨论】:

  • 不!解决问题的最佳方法是找出脚本需要这么多内存的原因,然后改变它的工作方式,使其不再需要那么多
  • 很遗憾,我不是开发人员。我该怎么做才能知道为什么脚本需要这么多内存?谢谢你。

标签: php memory


【解决方案1】:

没有。您需要增加 PHP 内存限制。您可以通过将以下代码添加到文件顶部来做到这一点

ini_set('memory_limit','512M');

或者在你的 php.ini 文件中增加它

memory_limit = 512M;

如果您无权访问,可以将其添加到您的 .htaccess 文件中

php_value memory_limit 512M

【讨论】:

  • 感谢您的回复。不幸的是,我的主机提供程序不允许内存限制高于 256 Mo。
  • 我在 2 天前编辑了我的问题。有没有人知道在不增加内存限制的情况下解决这个问题?
  • 您是在他们的服务器上托管还是在其他地方托管?
  • 我的主机供应商是 Gandi : wiki.gandi.net/en/simple/php/phpini
猜你喜欢
  • 2011-04-09
  • 2013-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-14
  • 2016-04-18
  • 2013-08-09
  • 2021-12-29
相关资源
最近更新 更多