我有一个 CakePHP 2.2.3 应用程序,它在我们的开发服务器上运行得非常好,这是一个来自 Turnkey Linux 的 Debian Squeeze LAMP 盒子。我们正在为我们的生产服务器使用 InMotion 托管,并且将我们的代码移至该服务器是非常糟糕的。
在一个页面上测试 AJAX 功能时,我们得到了非常无用的:
致命错误:第 0 行的 Unknown 中允许的内存大小为 268435456 字节已用尽(尝试分配 389245600 字节)
tl;博士:我正在寻找有关如何调试此问题的建议
我的第一个行动方案是将控制器功能中的所有代码精简到最低限度。我的一个控制器的 index() 操作包含一行代码,但每次执行仍然以某种方式设法超过 256mb 的内存:
$this->autoRender = false;
为了将上述观点发挥到极致,我注释掉了产生此错误的模型和控制器的每一行。仍然内存不足。其他几个发出 MySQL 数据库请求的页面也显示此“内存耗尽”错误,尽管它们已完全加载。其他页面,内存错误更像是一个显示停止器并完全阻止执行。
我已经尝试将内存限制从 256 提高到 512 甚至 1024mb,这一切都是为了抑制错误消息本身。该页面不路由/渲染或做任何事情,它只是默默地失败。
在另一篇 SO 帖子的建议下,我尝试将 Debug 从 2 变为 0,这也对解决问题没有任何帮助。
我们的生产服务器上没有安装 XDebug,所以我不知道应该如何为我们的网络主机跟踪问题以解决问题。
我们使用的 VPS 是运行 Apache 2.2.23、MySQL 5.3.18 和 CakePHP 2.2.3 的 CentOS 5.8 服务器
我们的虚拟主机不能或不会提供有关该主题的任何进一步信息。他们建议我们“问问 Cake 开发者他们以前是否见过这样的东西”,我觉得这是一种非常懦弱的方式来解决问题。我希望 SO 上的某个人之前已经看到过类似的问题,并且可能能够提供帮助。