Symfony 5 缓存:清除 php.CRITICAL:致命错误:允许的内存大小

Posted

技术标签:

【中文标题】Symfony 5 缓存:清除 php.CRITICAL:致命错误:允许的内存大小【英文标题】:Symfony 5 cache:clear php.CRITICAL: Fatal error: Allowed memory size 【发布时间】:2020-04-24 04:53:13 【问题描述】:

我在尝试使用 Symfony 5 时遇到以下错误

bin/console cache:clear

我知道如何修补 (memory_limit=-1),但我想知道为什么会出现此错误。

错误:

php 致命错误:允许的内存大小为 134217728 字节已用尽 (试图分配 32230840 字节) 在 /Applications/MAMP/htdocs/Toile./vendor/twig/twig/src/Lexer.php 第 157 行

15:50:13 CRITICAL [php] 致命错误:允许的内存大小为 134217728 字节已用尽(尝试分配 32230840 字节)

[
  "exception" => Symfony\Component\ErrorHandler\Error\OutOfMemoryError 
    -error: [
      "type" => 1,
      "message" => "Allowed memory size of 134217728 bytes exhausted (tried to allocate 32230840 bytes)",
      "file" => "/Applications/MAMP/htdocs/Toile./vendor/twig/twig/src/Lexer.php",
      "line" => 157
    ]
    #message: "Error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 32230840 bytes)"
    #code: 0
    #file: "./vendor/twig/twig/src/Lexer.php"
    #line: 157
  
]

在 Lexer.php 第 157 行:错误:允许的内存大小为 134217728 字节 用尽(试图分配 32230840 字节)

我无法追踪此错误的来源。

我从我的项目中删除了所有树枝模板,我手动清除了缓存但什么也没有......有什么想法吗?

谢谢

【问题讨论】:

如果它占用了太多内存,因为它占用了太多内存,所以除了增加 php.ini 中的限制或通过命令行(例如)之外,您无能为力。 php -dmemory_limit=1G bin/console ca:cl 谢谢,我将 php.ini 中的限制增加到 256MO 【参考方案1】:

看起来bin/console cache:clear 命令占用了大量内存。我不认为这是因为树枝文件。

设置memory_limit=-1 有点像禁用内存限制,意味着提供无限的内存来运行 PHP。请检查您的 php.ini 文件并调整 memory_limit。

请注意,您可能有 2 个用于 PHP 的 php.ini 文件,一个用于 Web,一个用于命令行。使用php -i查看加载的ini文件。

使用此命令php -i | grep 'Configuration' grep 命令行的输出。

【讨论】:

谢谢,我已经这样做了,但我想要一个更好的解决方案。我终于把 php.ini 的 memory_limit 增加到了 256MB。 这不是解决方案,您只是完全消除了问题。为什么在清除某事时需要分配更多内存?这是你刚刚忽略的根本原因。 这不是一个有效的答案,所以。没有提出永久的解决方案

以上是关于Symfony 5 缓存:清除 php.CRITICAL:致命错误:允许的内存大小的主要内容,如果未能解决你的问题,请参考以下文章

Symfony2 学说清除缓存

Symfony 部署后清除缓存组件

Symfony2 会话和缓存:清除命令

有没有办法在 Symfony 上自动清除缓存?

Symfony 缓存:清除错误毁了我的整个项目

Symfony2禁用缓存?