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

时间:2015-06-02 04:31:37

标签: php apache api laravel

我是系统管理员,负责处理托管使用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上检查了它。我没有看到任何错误。该团队尝试关注此链接Allowed memory size of X bytes exhausted

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

1 个答案:

答案 0 :(得分:-1)

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

所以解决方案是增加为PHP分配的内存。怎么做?有4种可能的方法 -

  1. 尝试查找php.ini文件。您可能会发现一些冗余的php.ini文件,因此请确保您已经获得了PHP实际读取的文件。哦,确保在你的根文件夹中创建一个新的php文件,说“check.php”并拥有phpInfo();在php打开和关闭标签内。执行此文件以获取有关php.ini所在位置的信息。通常它将在/usr/local/lib/php.ini
  2. 在TextPad(不在记事本中)的文本编辑器中打开php.ini文件,并更改memory_limit的值。默认情况下,您应该看到memory_limit = 8M。尝试将其更改为12M。如果它不起作用,请将其增加到16M甚至24M,依此类推。

    1. 如果您找不到php.ini文件或无法访问它,请打开抛出错误的文件(在我的情况下是admin.php)并在下面添加一行在ini_set之后('memory_limit','12M');

    2. 您甚至可以考虑在.htaccess文件中添加一行来解决问题。 php_value memory_limit 32M

    3. 或者,尝试将此行添加到您的php文件中: 增加分配给PHP的内存 的ini_set(“memory_limit的”,” 16M“);