2014-02-10 96 views
24

我得到一个错误,当我尝试打开我的仪表板页面之一我的wordpress脚本致命错误:用尽268435456个字节允许内存大小(试图分配71个字节)

该错误消息如下:

Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 71 bytes) in /home/admin/domains/filesick.com/public_html/wp-includes/taxonomy.php on line 2685

我四处询问,被告知我必须增加memory_limit的到的东西比256M高,所以我改成了512M,仍然同样的问题。然后我将其更改为3024M,这就是我现在的情况,但这并没有解决问题。

那么你能告诉我如何解决这个问题,我该怎么做?

等待您的回复。

+0

这听起来像你的记忆限制变化没有被应用。您可能正在编辑错误的文件。尝试在与wordpress安装相同的目录中的脚本中运行php_info(),并在那里检查输出的实际memory_limit。 – Loopo

+0

在猜测,你有一些代码导致无限循环 – andrewsi

+0

而不是增加内存,我会修复仪表板,并删除一切不必要的.. – DanFromGermany

回答

37

WordPress将覆盖PHP的内存限制为256M,假设无论它以前设置为低将无法呈现仪表板。您可以通过在wp-config.php定义WP_MAX_MEMORY_LIMIT覆盖此:

define('WP_MAX_MEMORY_LIMIT' , '512M'); 

我DanFromGermany同意,256M是真的呈现仪表板页面大量的内存。改变内存限制实际上是在解决问题。

+0

非常感谢你Dave它的工作,但请什么这是否意味着问题出在哪里,例如导致编码器或服务器出现此问题的原因是什么? –

+0

这取决于代码在做什么,可能有一个合法的原因需要使用如此多的内存,例如处理大型文件,但即使是大型文件,也没有将整个内容读入内存,而是可以通过块来处理它。 – Loopo

+1

有时候是平台本身。例如在WordPress(3.8.3)代码/ wp-includes/wp-db中。从1240行开始的PHP有一个循环,应该将数据库查询的结果累加到数组中。这对我来说大约有26,800个职位失败。现在我无法分辨为什么WordPress团队选择在一次调用中加载所有帖子,但管理仪表板因此失败。 – KalenGi

11

我有这个问题。我搜索了互联网,采取了所有的建议,改变配置,但问题仍然存在。最后在服务器管理员的帮助下,他发现问题在于MySQL数据库列的定义。一个表中的一列被分配给'Longtext',这导致分配4,294,967,295个内存。如果你没有使用MySql语句,看起来工作正常,但是一旦你使用了准备语句,它就会尝试分配这些内存。我将列类型更改为需要16,777,215个内存空间的中文文本。问题没有了。希望这个帮助。

相关问题