Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 致命错误:允许的内存大小134217728字节已用尽(尝试分配87字节)_Php_Cakephp - Fatal编程技术网

Php 致命错误:允许的内存大小134217728字节已用尽(尝试分配87字节)

Php 致命错误:允许的内存大小134217728字节已用尽(尝试分配87字节),php,cakephp,Php,Cakephp,当我登录到我的web应用程序时,会显示如下错误: 致命错误:第775行/gt/2.ps.fo/home/hft/domains/console.fo.spalgo.com/public_html/cake/libs/model/datasources/dbo/dbo_mysql.php中允许的内存大小为134217728字节(尝试分配87字节) 有解决这个问题的办法吗?为什么会出现此错误?我通过搜索“PHP内存不足”找到的第一个示例是,听起来好像您已经分配了。编辑站点php.ini配置中的mem

当我登录到我的web应用程序时,会显示如下错误:

致命错误:第775行/gt/2.ps.fo/home/hft/domains/console.fo.spalgo.com/public_html/cake/libs/model/datasources/dbo/dbo_mysql.php中允许的内存大小为134217728字节(尝试分配87字节)


有解决这个问题的办法吗?为什么会出现此错误?

我通过搜索“PHP内存不足”找到的第一个示例是

,听起来好像您已经分配了。编辑站点
php.ini
配置中的
memory\u limit
设置,如链接页面所述


另一种可能性(可能性较小)是您已经达到了用户或组的
setrlimit(2)
资源限制。检查
/etc/security/limits.conf
以了解可能为web服务器设置的限制,与启动服务器环境和PHP解释器环境的任何初始化脚本一起使用。

尝试使用
echo
而不是先将打印内容存储到变量。

查看引发致命异常的文件(
dbo_mysql.PHP
)我假定您的呼叫正在从数据库检索数据

ini_set('memory_limit', '-1');
另外,看看内存限制,它显示了134217728字节,即128MB,因此我认为无论您的API调用在做什么,都是在试图获取大量数据,这些数据的总量超过了每个脚本分配的限制。
例如,如果API调用堆栈中的最后一个脚本根据需要使用
20MB
,然后从数据库中提取数据
115MB
,那么您的脚本将尝试分配
135MB
,该值已超过限制
7MB
,从而导致
致命异常

因此,我看到了一些需要检查/做的事情:

  • 您没有检索不必要的数据,或者换句话说,只检索您需要的数据
  • 如果您确实需要所有这些数据,那么
    • 增加
      php.ini
      文件下的
      memory\u limit

      Con:如果您的数据持续增长,您可能需要不断更新仅一个脚本的此值,并将自己暴露在内存泄漏或内存不足的情况下
    • 或者我建议您实现某种分页(这将允许您检查内存限制),并使您的应用程序更具可伸缩性

  • 这意味着您的代码正在做一些耗尽所有可用内存的事情。修复它,使其使用更少的内存和/或执行更少的操作。到-1时,它将取消内存限制并可能泄漏。你应该避免这种配置,在没有选择的时候使用它。虽然这两种说法都有可能,但它更可能与内存限制有关,但是,仅仅增加它,虽然它会解决问题,但它可能不是正确的解决方案,因为你必须检查为什么单个脚本会分配那么多内存。为了补充你的答案,我又加了一个。