【问题标题】:Laravel Memory: 'out of memory (allocated 262144)'Laravel 内存:'内存不足(分配 262144)'
【发布时间】:2015-08-15 17:33:45
【问题描述】:

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

【问题讨论】:

  • 你能把你的配置文件贴在这里吗?
  • apache 还是 php 配置?
  • 我看错了你的问题。我不认为 laravel 超越了限制。但是您可以 grep 您的开发人员为任何 php 动态否决提供的代码。我仍然认为这是由错误的 php.ini 设置引起的。
  • 我仍然不明白为什么它仍然会出现有关内存的错误。我遵循了这个解决方案 [链接] (stackoverflow.com/questions/26636980/…),但我仍然遇到错误。还有什么想法吗?
  • 我在过去 2 小时内遇到了同样的问题,我在 php.ini 设置了最大限制并多次清理缓存,但没有成功

标签: php apache api laravel


【解决方案1】:

我能想到的第一件事就是重启 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 的值。默认情况下,您应该看到 memory_limit = 8M。尝试将其更改为 12M。如果不行,就增加到16M甚至24M等等。

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-25
    • 2023-04-05
    • 2011-01-11
    • 2014-02-18
    • 1970-01-01
    • 1970-01-01
    • 2014-05-11
    • 1970-01-01
    相关资源
    最近更新 更多