致命错误:允许的内存大小为 268435456 字节已用尽(尝试分配 71 字节)
Posted
技术标签:
【中文标题】致命错误:允许的内存大小为 268435456 字节已用尽(尝试分配 71 字节)【英文标题】:Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 71 bytes) 【发布时间】:2014-03-07 23:07:32 【问题描述】:当我尝试在我的 wordpress 脚本中打开我的仪表板页面之一时遇到错误
报错信息如下:
致命错误:允许的内存大小为 268435456 字节已用尽(已尝试 分配 71 个字节)在 /home/admin/domains/filesick.com/public_html/wp-includes/taxonomy.php 第2685行
我四处询问并被告知我必须将 memory_limit 增加到高于 256M 的值,所以我将其更改为 512M 仍然是同样的问题。然后我将其更改为 3024M,这就是我现在所拥有的,但这并没有解决问题。
那么你能告诉我如何解决这个问题以及我应该怎么做吗?
等待您的回复。
【问题讨论】:
听起来您的内存限制更改没有被应用。您可能正在编辑错误的文件。尝试在与您的 wordpress 安装相同的目录中的脚本中运行 php_info(),并检查那里的实际 memory_limit 输出。 猜测,你有一些导致无限循环的代码 我不会增加内存,而是修复仪表板并删除所有不必要的东西.. 好吧,这不是我的代码,而是我付钱给他做整个网站的编码器,他说这不是他的代码;这是我应该检查的服务器 告诉他修复它,让脚本使用更少的资源,或者不要诚实地付钱给他 wtf 250MB 的数据用于仪表板你知道这是多少数据... 【参考方案1】:我从 .htaccess 更改了内存限制,这个问题得到了解决。
我试图从一个防病毒插件扫描我的网站,但我遇到了这个问题。我通过将其粘贴到 Wordpress 文件夹中的 .htaccess 文件中来增加内存:
php_value memory_limit 512M
扫描结束后,我删除了这一行以使其大小与以前一样。
【讨论】:
【参考方案2】:WordPress 将 PHP 的内存限制覆盖为 256M,并假设之前设置的任何内容都太低而无法呈现仪表板。您可以通过在wp-config.php
中定义WP_MAX_MEMORY_LIMIT
来覆盖它:
define( 'WP_MAX_MEMORY_LIMIT' , '512M' );
我同意 DanFromGermany 的观点,256M 对于渲染仪表板页面来说确实是很多内存。更改内存限制确实是在给问题贴上绷带。
【讨论】:
非常感谢 Dave,它可以工作,但请问这是什么意思,比如导致编码器或服务器出现此问题的原因是什么? 这取决于代码在做什么,必须使用这么多内存可能是有正当理由的,例如处理大文件,但即使对于大文件,也可以不将整个文件读入内存,而是分块处理它。 有时是平台本身。例如,在从第 1240 行开始的 WordPress (3.8.3) 代码 /wp-includes/wp-db.php 中,有一个循环应该将数据库查询的结果累积到一个数组中。这对我来说在大约 26,800 个帖子中失败了。现在我不知道为什么 WordPress 团队选择在一次调用中加载所有帖子,但管理仪表板因此失败。 @dave 有什么区别? 'WP_MEMORY_LIMIT' @borayeris WordPress 假设管理部分将使用更多内存,因此 WP_MEMORY_LIMIT 控制正常可用的最大内存,而 WP_MAX_MEMORY_LIMIT 仅在管理页面上设置最大值。这是一个糟糕的命名方案,但它可以追溯到 WordPress 2.5,现在没有人敢更改它。见codex.wordpress.org/…【参考方案3】:我遇到了这个问题。我搜索了互联网,听取了所有建议,更改了配置,但问题仍然存在。最后在服务器管理员的帮助下,发现问题出在mysql数据库列定义上。 a 表中的一列被分配给“Longtext”,这导致分配 4,294,967,295 位内存。如果您不使用 MySqli prepare 语句,它似乎工作正常,但是一旦您使用 prepare 语句,它就会尝试分配该内存量。我将列类型更改为需要 16,777,215 位内存空间的 Mediumtext。问题消失了。希望对您有所帮助。
【讨论】:
这就是导致我的 PHP 应用程序 (laravel) 分配超过 256M 的原因 - 作业表(由 Laravel 自动创建用于排队)包含一个 LONGTEXT!我改成了 MEDIUMTEXT(16MB,绰绰有余)以上是关于致命错误:允许的内存大小为 268435456 字节已用尽(尝试分配 71 字节)的主要内容,如果未能解决你的问题,请参考以下文章
php - 致命错误:允许的内存大小为 134217728 字节已用尽 [重复]
PHP致命错误:允许的内存大小为134217728字节已用尽
致命错误:允许的内存大小为 1610612736 字节用尽 laravel 护照