我正在将生产服务器 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)无限
Smart猫小萌