【问题标题】:PHP Memory Limit debuggingPHP 内存限制调试
【发布时间】:2011-04-13 14:26:18
【问题描述】:

我有一个使用 Wordpress 网站的客户。他们正在运行几个导致致命内存错误的插件。这 2 个插件具体是 Simple Map & Drain Hole。我不确定这些插件中究竟是哪个插件导致了这个问题。简单地图用于管理位置或提供者,很像 Google Places。 Drain Hole 用于通过 URL cloaking 保护文件。

在简单地图中,他们目前有大约 900 个位置。在 Drain Hole 中,他们目前保护了大约 700 个文件。在开发过程中,我们没有遇到任何问题,因为我们的 PHP 内存限制设置为 64MB。在他们的实时服务器上,主机只允许 30MB,并且不允许更改。

我的问题/问题是这样的:如果我将它们移动到允许至少 64MB 的新主机,我如何确定如果它们继续添加到这些插件中,这将不会再发生?有没有办法测试这些内存峰值是否合法,或者它们是否是糟糕、低效的代码造成的?

编辑:致命错误似乎是命中或未命中。它只发生在 Wordpress 管理面板的某些屏幕中,特别是那些处理简单地图的屏幕。虽然如果我禁用 Drain Hole 插件,错误就会完全消失。错误:

**Fatal error:** Out of memory (allocated 34078720) (tried to allocate 44 bytes) in /fake/dir/wp-includes/wp-db.php on line 1400

【问题讨论】:

  • 致命错误发生在哪几行?
  • 您的主机是否只是阻止您编辑 php.ini?如果是这样,您可以使用 ini_set('memory_limit', 64); 在脚本中设置内存吗?
  • 他们已经完全阻止了它。我尝试了几种方法来增加限制。目前托管在 1and1(我讨厌的人)

标签: php wordpress debugging fatal-error


【解决方案1】:

1and1 作为一个糟糕的 WP 主机而臭名昭著。 WP 3.1 在运行时尝试为自己分配 64megs,在 wp-config.php 中,您可以在顶部附近添加此行

define('WP_MEMORY_LIMIT', '128M');

如果主机允许,可以获取更多。如果可能的话,找一个新的主机。您正在以需要大量 RAM 的密集方式运行插件。这可能是插件和 WP 的问题,但事实就是如此。

【讨论】:

  • 是的,我要搬到一个新的主机,因为 1and1 不允许我们有超过 30MB 的空间而不移动到专用的。
【解决方案2】:

我知道有问题的插件会发生这种情况。不幸的是,需要将它们一一关闭,才能看到是哪个插件造成的。但是停用该插件后,您会没事的。

当我收到同样的错误时,这就是我的解决方案。

【讨论】:

  • 我同意这是在某些情况下的解决方案。但是,在这种情况下,实际上需要插件,并且在技术上运行良好。在这种情况下,我有一种感觉,这些插件控制的数据量超出了预期,这是某些页面中内存峰值的原因
猜你喜欢
  • 2014-02-06
  • 1970-01-01
  • 2014-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
相关资源
最近更新 更多