symfony中的内存不足错误

时间:2015-05-14 05:05:59

标签: php symfony out-of-memory

我目前正在研究Symfony项目(const VERSION ='2.5.10'),我正在使用xampp。 PHP版本是5.5.19。

我的问题是每次运行我的开发环境时都会收到错误:

  

OutOfMemoryException:错误:C:\ xampp \ htdocs \ Editracker \ vendor \ symfony \ symfony \ src \ Symfony \ Component \ HttpKernel \ Profiler \ FileProfilerStorage.php中允许的内存大小为1073741824字节(尝试分配3358976字节)第153行

每次刷新页面时都会提供不同的内存大小。我也认为这也是我的开发环境在刷新页面之前没有时间的原因。

感谢您的帮助。

的php.ini

  

memory_limit ='256M'

我试图增加内存限制,但仍会出现内存限制错误

7 个答案:

答案 0 :(得分:17)

Symfony中最热切的组件是分析器。如果您在某些特定操作中不需要探查器,可以通过代码禁用它:

if ($this->container->has('profiler'))
{
    $this->container->get('profiler')->disable();
}

您还可以在config中设置全局参数:

framework:
    profiler:
        collect: false

答案 1 :(得分:4)

你要么禁用symfony profiler(我不认为这是你想要的)或者在你的php.ini中用-1设置限制为无限制并重新启动apache。

memory_limit = -1

答案 2 :(得分:1)

我在安装XDebug的Twig调试中解决了内存不足错误。

因为Twig在内部使用PHP var_dump()函数,所以安装XDebug是个好主意,因为它将数组和对象的{{1}}输出限制为3级深度,正如我们在join

documentation的信用。

答案 3 :(得分:0)

如果仅在Symfony dev环境下达到内存限制,我建议将以下内容添加到web/app_dev.php

ini_set('memory_limit', '-1');

通过这种方式,您可以继续使用合理的内存来测试生产。通过php.ini修改整个环境可以隐藏错误。

答案 4 :(得分:0)

就算晚了,最近我也遇到了i的问题,只是使用Symfony 3.4访问app.php文件。结果表明,将SELinux设置为Out of Memory时,即使将项目中enforcing目录的权限设置为777,也无法在其上进行写操作。如果您按照官方文档中有关如何在生产环境中进行部署的步骤进行操作,它将返回响应代码500并仅在PHP已耗尽内存限制的情况下写入Web服务器的错误日志中。

我不是SELinux的专家,但是解决该问题的唯一方法是禁用SELinux,但要使用var版文件设置/etc/selinux/config并重新启动操作系统。

同样,存在SELinux的原因是,使用Symfony的SELINUX=disabled子文件夹很难找到正确的配置,并且如果不考虑禁用SELinux就会很难解决此问题。

答案 5 :(得分:0)

我也有这个错误,但这只是我忘记在树枝中解析的一个日期:

解决方案:{{ date_start|date('d/m/Y') }}

答案 6 :(得分:0)

这可能有帮助:

php -d memory_limit=-1 /usr/local/bin/composer require ggergo/sqlindexhintbundle