【问题标题】:Wordpress - Trying to edit post - "Fatal error: Out of memory"... but memory limit is highWordpress - 尝试编辑帖子 - “致命错误:内存不足”......但内存限制很高
【发布时间】:2010-09-26 17:07:04
【问题描述】:

啊,我很绝望,我很帮助有人可以帮助我!

我有一个域:example.com。有针对不同语言的各种 WP 安装,例如/en/, /fr/。我已经复制了英语 /en/ 来制作这些其他外语安装。原来的 /en/ 安装仍然很好用。

其他安装在前端工作,但是,当我尝试编辑页面时,例如,我收到此错误,更新/保存/提交时:

致命错误:第 1371 行 /homepages/../wp-includes/wp-db.php 中的内存不足(已分配 28835840)(尝试分配 35 个字节)

英语安装 (/en/) 不会发生这种情况,当我在其他博客中更改其他内容时也不会发生这种情况。例如,我已经设法更改了博客的名称、小部件、菜单等。

我已经安装了 Memory Booster 插件,所以 PHP 现在有 256M 可以使用,但这似乎很早就耗尽了内存。

有人知道怎么帮忙吗? :(

提前表示感谢!!!

【问题讨论】:

  • 您是否验证过 memory_limit 实际上是通过调用 phpinfo() 设置的?
  • 是的,已经验证...不高兴...我认为它一定是一个红人,但天哪,是什么导致它...不是插件,主题...我可以更改条目在数据库中使用 phpmyadmin... :(

标签: php wordpress memory


【解决方案1】:

也许是个愚蠢的问题,但是您是否在调整内存限制后重新启动了 Web 服务器?

或者,可能在某个地方的 PHP 文件 (ini_set('memory_limit', ...)) 或 Apache 配置文件 (php_value / php_admin_value) 中覆盖了内存限制。

您可以尝试通过插入例如打印有效内存限制一个

echo '<h1>LIMIT: '.ini_get('memory_limit').'</h1>';

在错误行之前声明(如果错误重复发生在同一位置)并重新加载有问题的页面以查看您的限制是否与您认为的一样(在这样做之前备份原始文件)。

【讨论】:

  • 事实证明我的主机最大可达 30M,即使您要求增加任何代码。但是,只有某些安装会抛出错误是没有意义的......?
  • 我真的不知道,但可能是由于本地化消息或其他原因,它们的内存要求有所不同......例如非英语安装可能同时加载了非英语和英语(作为备用语言)消息或类似内容。
  • 如果您包含上面的 echo 语句,您的脚本会打印什么内存限制?并且错误总是在您的非英语安装上重现,而在英语 WordPress 上永远不会重现?
  • 你是怎么知道的?是否有任何其他线索可以指向根本原因?
  • 因为我在内存限制为 256M 的不同系统上进行了尝试,但它只是挂起更长的时间......它与内存相关是不合理的......线索:只有我有效地改变了站点 url 和表前缀...
【解决方案2】:

这个错误可能是一个红鲱鱼,即表明问题与内存有关,即使它不是。

【讨论】:

  • 正确,打包系统和框架总是如此
  • 兄弟,你知道真正的原因是什么吗?
【解决方案3】:

问题是您正在运行多个 WP 安装。每个至少需要 30 兆,而且你快用完了,尤其是。如果您的主机便宜且最大容量为 30 兆。运行一次安装并正确实现多种语言

http://codex.wordpress.org/Multilingual_WordPress

http://wpml.org/

或寻找新的网络主机。

【讨论】:

  • 但是不同的安装不应该相互独立吗?我的意思是,非英文版的 WordPress 不会加载英文版的 WordPress,共享限制只会在有多个同时请求的情况下才会生效,而且这同样会影响英文版的 WordPress,而不仅仅是其他的。
  • "但是不同的安装不应该相互独立吗?"这正是问题所在——他们是。它们都在使用内存,都在运行 cron,都在使用 httpd 资源,即使在空闲且没有发出 http 请求时也是如此。而且该托管帐户一开始就非常有限。
  • 通常,PHP 中的内存限制是针对每个脚本的,当只发出一个请求时,只有该请求会消耗内存(即 RAM,而不是磁盘空间)。因此,只要非 PHP 硬内存限制为 30 MB并且同时运行多个请求,您是否运行一个或多个 WordPress 安装都无关紧要。也就是说,256M PHP 内存限制对于大多数 PHP 脚本来说应该足够了(因为它是每个脚本),但是 256 MB 的硬系统内存限制可能会或可能不会足够,这取决于同时运行的 PHP 脚本的数量。
  • 目前看来,有些脚本需要超过 30 MB,所以 256 MB 意味着您可以同时运行可能 (256 / 30) = 8 个这样的脚本(其他脚本可能会消耗更少的内存)。当然,这也取决于您在 WordPress 中拥有的数据(例如,更长的博客条目需要更多内存)。
猜你喜欢
  • 2011-10-16
  • 1970-01-01
  • 2013-04-06
  • 2016-05-26
  • 2019-12-25
  • 1970-01-01
  • 2012-08-14
  • 2014-06-01
  • 2014-01-25
相关资源
最近更新 更多