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

问题描述 投票:0回答:1

我是一名系统管理员,负责处理托管使用 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应用程序事务是正确的,它也会返回错误,因为返回代码不正确,因为它正在返回代码内存错误。

php apache api laravel
1个回答
0
投票

我首先想到的就是重启Apache httpd服务。这立即解决了问题。但我知道这并不是问题的永久解决方案。当我进一步研究时,我发现当某些 PHP 脚本需要的内存超过 PHP 默认允许的内存时,就会出现错误。

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

  1. 尝试查找 php.ini 文件。您可能会发现一些多余的 php.ini 文件,因此请确保您拥有 PHP 实际正在读取的文件。 o 确保在根文件夹中创建一个新的 php 文件,输入“check.php”并包含 phpInfo();在 php 打开和关闭标记内。执行此文件以获取有关 php.ini 所在位置的信息。通常它会在 /usr/local/lib/php.ini 中

在 TextPad(而不是记事本)等文本编辑器中打开 php.ini 文件,然后更改 memory_limit 的值。默认情况下,您应该看到内存限制 = 8M。改成12M试试。如果不行就增加到16M甚至24M等等。

  1. 如果您找不到 php.ini 文件或无法访问它,请打开引发错误的文件(在我的例子中为 admin.php),并在 ini_set('内存限制', '12M');

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

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

© www.soinside.com 2019 - 2024. All rights reserved.