2016-09-28 106 views
0

这是我的问题:当我尝试在我的开发环境中执行cache:clear命令时,由于PHP内存限制,我有一个致命错误。所以,我试图将这个限制增加到2048M,这应该足够了,但仍然是同样的问题。我试过了一切:在执行命令之前手动删除缓存文件夹,将PHP memory_limit设置为-1(由Windows停止,因为分配内存不足),使用--no-warmup命令执行命令或 - -no-可选,取暖器...Symfony清除缓存内存限制

的信息,一切就像一个魅力...

为什么这个命令是如此贪婪?我该如何解决我的问题?

谢谢!

回答

0

你在哪里改变了内存限制。

对于Web服务器和命令行界面(CLI),您的php.ini有很大的不同。

如果您在命令行中遇到了memory limit的问题,请确保您正在编辑正确的php.ini文件。

要知道什么是ini文件正在使用中。运行命令:php --ini

希望这会有所帮助。

+0

谢谢您的回答,但是当我改变了内存的限制,我可以看到,它的考虑帐户,因为当我把256M,它在256M失败,当我把512M,它在512M等失败... – Alfredo

0

当我从SF2.3升级到SF2.8(很多BC更改)时,我遇到了类似的问题。 通过CLI运行的PHP脚本没有默认设置的最大内存限制。这就是为什么所有内存资源都被耗尽的原因。

问题就走了之后我:

  1. 升级捆绑最新版本,这很可能是不够兼容当时最近SF版本。

  2. 修复了我的所有代码,以反映升级手册(主要是表单类型,yaml设置和控制器)的BC更改。

包和我的代码产生了更大量的调试信息(通常是废弃警告),这引起了PHP的Xdebug直到内存刷爆占用的所有资源。我注意到,只有在预热缓存的时候。在所有修复之后,我将警告信息保持在最低限度。

你可以检查:

  • dev.log任何废弃警告
  • Xdebug的设置,并设置max_nesting_level一些理智的价值: Xdebug的。max_nesting_level = 1200
  • 的CLI,禁用Xdebug的是不必要的反正: php5dismod -s命令行的XDebug
+0

嗨,我检查了dev.log,它似乎确定。在我的CLI php.ini文件中,XDebug被禁用......仍是同样的问题!感谢您的回答。 – Alfredo