【问题标题】:Laravel reporting memory size 268MB exhausted but php.ini says 512MBLaravel 报告内存大小 268MB 耗尽但 php.ini 说 512MB
【发布时间】:2018-02-01 04:42:51
【问题描述】:

Laravel 作业侦听器正在运行超过 10 万条记录,并给出错误

PHP Fatal error:  Allowed memory size of 268435456 bytes exhausted (tried to allocate 1179648 bytes) in .../vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsTo.php on line 184


[Symfony\Component\Debug\Exception\FatalErrorException]                             
 Allowed memory size of 268435456 bytes exhausted (tried to allocate 1179648 bytes)  

我已经使用 phpinfo() 证明了 memory_limit = 512M,所以我不知道当 512 > 268 时会发生什么:) - 还有 belongsTo 关系与它有什么关系?

【问题讨论】:

标签: php laravel laravel-5


【解决方案1】:

您提到 Laravel 作业侦听器,这让我假设您通过命令行运行它。 php.ini 用于命令行执行可能与 Web 服务器加载的内容不同。请确保memory_limit 值对于两个php.ini 相同。要从 shell(假设是 Linux)中找到命令行的 php.ini,请运行

$ php -i | grep php\.ini

【讨论】:

  • 看来这可能是欺骗我的答案 - 我在 /etc/ 找到了命令行 php.ini,所以如果我改变它,我只需要重新加载 php 吗?还是整个服务器?
  • 哦,因为它是作业监听器——我只需要重新启动监听器就可以让 php.ini 生效?
  • AFAIK, php.ini 每次通过命令行运行 php 时都会被读取。是的。您需要重新启动作业侦听器。
猜你喜欢
  • 1970-01-01
  • 2019-03-17
  • 2018-08-04
  • 1970-01-01
  • 1970-01-01
  • 2020-06-25
  • 1970-01-01
  • 1970-01-01
  • 2016-08-31
相关资源
最近更新 更多