Laravel内存:'内存不足(已分配262144)'


Laravel Memory: 'out of memory (allocated 262144)'

我是一名系统管理员,负责处理一台服务器,该服务器托管使用Laravel 5创建的内部api。数据源是托管在另一台服务器上的SQL Server, api用于手机的IOS应用程序。当开发人员创建api时,不存在此错误,也没有发现其他内存错误。当我们上线时,这个错误就会时不时地弹出。

[2015-06-01 23:01:52] production.ERROR: exception 'Symfony'Component'Debug'Exception'FatalErrorException' with message 'Out of memory (allocated 262144) (tried to allocate 140189808036120 bytes)' in Unknown:0

我检查了服务器的RAM, CPU,交换等,但一切正常。没有多少资源被消耗。我已经从PHP. ini检查了PHP内存限制,并设置为-1,这是根据PHP的最大值。我已经在CLI, phpinfo.php和httpd.conf上检查了它,我没有看到任何错误。团队尝试遵循此链接允许内存大小为X字节耗尽

这是ios应用程序中的一个问题,因为应用程序搜索正确的返回代码,但当这个错误出现时,即使ios应用程序事务是正确的,它也会返回一个错误,因为返回代码是不正确的,因为它返回内存错误的代码。

我能想到的第一件事是重新启动Apache httpd服务。这立即解决了问题。但我知道这不是解决问题的长久之计。当我进一步研究时,我知道当某些PHP脚本需要比PHP默认允许的更多的内存时,就会出现错误。

因此,解决方案是增加分配给PHP的内存。怎么做呢?有4种可能的方法-
    试着查找php.ini文件。您可能会发现一些多余的PHP. ini文件,因此请确保您已经获得了PHP实际正在读取的文件。在你的根目录下创建一个新的php文件,输入"check.php",并输入phpInfo();在PHP的打开和关闭标记中。执行此文件以获取php.ini所在位置的信息。通常在/usr/local/lib/php.ini

在TextPad等文本编辑器中打开php.ini文件(而不是在记事本中)并更改memory_limit的值。默认情况下,您应该看到memory_limit = 8M。尝试将其更改为12M。如果不工作,增加到16M,甚至24M,以此类推。

  • 如果你找不到php.ini文件或没有访问它,然后打开抛出错误的文件(admin.php在我的情况下),并在ini_set(' memory_limit ', ' 12M ')之后添加一行;

  • 你甚至可以考虑在。htaccess文件中添加一行来解决这个问题。

  • 或者,尝试添加这一行到你的php文件:增加分配给PHP的内存报错("memory_limit"、"16 m");