【问题标题】:PHP: Allowed memory size of ... bytes exhaustedPHP:允许的内存大小......字节用尽
【发布时间】:2019-09-18 13:27:11
【问题描述】:

我正在尝试运行artisan make:controller

我遇到了一个问题:

PHP Fatal error:  Allowed memory size of

我尝试增加memory-limit 的大小,但没有奏效。我尝试了更大的值和-1。这似乎不是最好的选择。看来我可能有内存泄漏,但我不知道如何找到它。跟垃圾回收有关系吗?

我无法运行 artisan 代码但得到:

PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted  
(tried to allocate 65536 bytes) in \laravel\vendor\laravel\framework\src\Illuminate\Console\GeneratorCommand.php on line 85  
PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted  
(tried to allocate 65536 bytes) in \laravel\vendor\laravel\framework\src\Illuminate\Support\Manager.php on line 85  

【问题讨论】:

  • 不是解决方案,而是一般的经验法则。仅当您用尽所有其他选项时才增加memory-limit。看来您的限制已经很高了 128MB,如果 10 个人同时访问您的网站会发生什么情况,您是否有 1GB 的备用 RAM 以备不时之需?高内存限制是等待发生的 DoS 攻击。
  • 我放弃了这个项目。几天前我再次得到它,找不到它的原因,但取消了我所做的。这消除了错误。我建议使用 git,这样您就可以恢复到以前的状态。

标签: php laravel


【解决方案1】:

您可能需要检查类自动加载之间的循环引用

【讨论】:

  • 我已尝试dump-autoload。但仍然遇到问题。
【解决方案2】:

您确定,您在正确的 php.ini 上设置了内存限制吗?

以下命令应该对您有所帮助。

php -d memory_limit=256M artisan make:controller

【讨论】:

  • 这并没有改善它。得到以下vendor\laravel\framework\src\Illuminate\Console\GeneratorCommand.php:85 81| * @return string 82| */ 83| protected function qualifyClass($name) 84| { > 85| $name = ltrim($name, '\\/'); 86| 87| $rootNamespace = $this->rootNamespace(); 88| 89| if (Str::startsWith($name, $rootNamespace)) {
  • 您可以从您的项目中删除供应商文件夹并重试吗?
  • 删除了“供应商”文件夹。然后运行artisan。它需要自动加载。所以我然后运行composer install 并返回相同的内存限制问题。
猜你喜欢
  • 2015-10-13
  • 2017-08-26
  • 2023-03-31
  • 2015-09-23
  • 1970-01-01
  • 1970-01-01
  • 2012-08-29
  • 2020-10-06
  • 2018-02-24
相关资源
最近更新 更多