迁移后 Cakephp 内存限制错误,排除控制器故障

我正在将生产服务器 Cakephp 2.3.8 项目复制/迁移到开发项目中,但出现了著名的错误:


Blockquote 致命错误错误:允许的内存大小 1073741824 字节耗尽(尝试分配 200648563 字节)文件:/var/www/html/lib/Cake/Utility/String.php 行:243


注意:如果您想自定义此错误消息,请创建 app/View/Errors/fatal_error.ctp


我已经镜像了与生产服务器相同的规格:


尝试将 apache > php.ini 文件的默认内存限制从 128M 增加到 1024

也是 1024 到 2048,但没有运气

重新启动服务器和apache服务

限制我的数据库上的数据集(当前有 6 个,但生产服务器在我正在查询的表上有大约 40K 行)

测试了控制器内部的一个功能,仅显示一行文本(成功显示它,但致命错误消息不断显示)。

这主要发生在我访问某些控制器时,因为我能够正确加载某些页面(显然)。



我目前正在日志文件上调试应用程序的行为:


/ppp/tmp/logs/error.log

调试工具


但他们都没有显示致命错误限制的更多细节,我被告知这可能是内存泄漏,如果两台服务器都以同样的方式受到限制,那怎么办?(以下服务器的 ulimit)。



我想知道问题出在哪里,是我缺少设置吗?如何调整控制器使其运行无错误?

开发服务器规格


百 7

PHP 5.4.16 (cli)(构建时间:2020 年 4 月 1 日 04:07:17)

版权所有 (c) 1997-2013 PHP Group

Zend Engine v2.4.0,版权所有 (c) 1998-2013 Zend Technologies

with Xdebug v2.2.7,版权所有 (c) 2002-2015,作者:Derick Rethans

Linode 上的 VPS:2 核 4 GB RAM

ulimit:

核心文件大小(块,-c) 0

数据段大小(千字节,-d) 无限

调度优先级(-e) 0

文件大小(块,-f) 无限

挂起信号(-i) 15076

最大锁定内存(千字节,-l) 64 最大

内存大小(千字节,-m) 无限

打开文件(-n) 1024

管道大小(512 字节,-p) 8

POSIX 消息队列(字节,-q) 819200

实时优先级 (-r) 0

堆栈大小(千字节,-s) 8192

CPU 时间(秒,-t) 无限

最大用户进程数 (-u) 15076

虚拟内存(kbytes,-v)无限

文件锁(-x)无限

生产服务器


百 7

PHP 5.4.16 (cli)(构建时间:2020 年 4 月 1 日 04:07:17)

版权所有 (c) 1997-2013 PHP Group

Zend Engine v2.4.0,版权所有 (c) 1998-2013 Zend Technologies

专用服务器:16 核(32 线程)、128Gb RAM

ulimit:

核心文件大小(块,-c) 0

数据段大小(千字节,-d) 无限

调度优先级(-e) 0

文件大小(块,-f) 无限

挂起信号(-i) 514324

最大锁定内存(千字节,-l) 64 最大

内存大小(千字节,-m) 无限

打开文件(-n) 8192

管道大小(512 字节,-p) 8

POSIX 消息队列(字节,-q) ) 819200

实时优先级 (-r) 0堆栈大小(千

字节,-s) 8192

CPU 时间(秒,-t) 无限

最大用户进程数 (-u) 8192

虚拟内存(kbytes,-v)无限

文件锁(-x)无限


烙印99
浏览 159回答 1
1回答

Smart猫小萌

目前尚不清楚所谓的String.php Line: 243完整调用堆栈可能有帮助复制lib/Cake/View/Errors/fatal_error.ctp并app/View/Errors/fatal_error.ctp添加<pre><?php&nbsp;echo&nbsp;h($error->getTraceAsString());&nbsp;?></pre>
打开App,查看更多内容
随时随地看视频慕课网APP