当我登录我的网络应用程序时,它显示如下错误:
致命错误:/gt/2.ps.fo/home/hft/domains/console.fo.spalgo.com/public_html/cake/libs/中允许的内存大小为134217728个字节(尝试分配87个字节)第775行的model / datasources / dbo / dbo_mysql.php
有没有解决这个问题的方案?为什么我会收到此错误?
答案 0 :(得分:9)
听起来你已经分配了more memory than PHP will allow。按照链接页面上的说明修改网站memory_limit
配置中的php.ini
设置。
另一种可能性(不太可能)是您已达到用户或群组的setrlimit(2)
资源限制。检查/etc/security/limits.conf
可能为您的Web服务器设置的限制,以及启动服务器环境和PHP解释器环境的任何初始化脚本。
答案 1 :(得分:3)
我在搜索SO时发现“PHP内存不足”的第一个例子是this one
答案 2 :(得分:1)
尝试使用echo
,而不是先将正在打印的内容存储到变量中。
答案 3 :(得分:1)
ini_set('memory_limit', '-1');
答案 4 :(得分:1)
查看抛出致命异常(dbo_mysql.php
)的文件,我假设您的调用是从DataBase中检索数据。
另外,查看内存限制,它显示134217728个字节,即128MB,因此我认为无论您的API调用是什么,都会尝试获取大量数据,这些数据总数超过了每个脚本分配的限制。 />
例如,如果API调用堆栈中的最后一个脚本使用20MB
来满足其需求,然后厌倦从值115MB
的数据库中获取数据,那么您的脚本将尝试分配135MB
}已超过限制7MB
,从而导致Fatal Exception
。
所以,我看到了一些要检查/做的事情:
memory_limit
文件下的php.ini
值
Con:如果您的数据不断增长,您可能需要不断更新此值,仅限一个脚本,并将您的内容暴露给内存泄漏或内存不足。