我的问题是:当我尝试在我的开发环境中执行cache:clear命令时,由于PHP内存限制,我有一个致命的错误。因此,我尝试将此限制增加到2048M,这应该足够了,但仍然存在相同的问题。
我尝试了所有方法:在执行命令之前手动删除缓存文件夹,将PHP memory_limit设置为-1(由于内存不足而被Windows停止分配),使用——no-warm或——no-optional- warms执行命令…
对于信息来说,其他一切都像魅力一样…
为什么这个命令这么贪婪?我该如何解决我的问题?
谢谢!
您在哪里更改了内存限制
对于web服务器和命令行接口(CLI),您的php.ini
很有可能是不同的。
如果您在命令行中遇到memory limit
的问题,请确保您编辑了正确的php.ini
文件。
了解哪些ini
文件正在使用。php --ini
当我从SF2.3升级到SF2.8(大量BC更改)时,我遇到了类似的问题。默认情况下,通过CLI运行的PHP脚本没有设置最大内存限制。这就是为什么所有的内存资源都用光了。
问题消失后I:
-
将bundle升级到最新版本,这可能与当时最新的SF版本不够兼容。
-
修复了我所有的代码,以反映BC从升级手册的变化(主要是表单类型,yaml设置和控制器)。
bundle和我的代码产生了更多的调试信息(通常是弃用警告),这导致PHP Xdebug占用了所有的资源,直到内存达到最大值。我只是在预热缓存时才注意到这一点。在所有的修复之后,我将警告消息保持在最低限度。
你可以检查:
- dev.log查看任何弃用警告
- xdebug设置并将max_nesting_level设置为相同的值: xdebug.max_nesting_level = 1200
- 为CLI禁用xdebug,这是不必要的:php5dismod -s cli xdebug