Symfony生产环境抛出500错误:Doctrine \ ORM \ ORMException' Unknown Entity命名空间别名' DSBlogBu​​ndle'

时间:2014-09-06 15:12:36

标签: symfony doctrine

我正在学习Symfony2,非常酷的东西。但是当我想尝试访问生产环境时,我确实遇到了一些麻烦。我遵循了位于此处的Symblog教程:http://tutorial.symblog.co.uk/

我已清除缓存并访问http://symfony.dev/我已在本地运行。页面保持完全空白,此错误在日志中:

Fatal error: Uncaught exception 'Doctrine\ORM\ORMException' with message 'Unknown Entity namespace alias 'DSBlogBundle'.' 
in /Applications/MAMP/htdocs/symfony/vendor/doctrine/orm/lib/Doctrine/ORM/ORMException.php:236 
Stack trace: 
#0 /Applications/MAMP/htdocs/symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Configuration.php(194): Doctrine\ORM\ORMException::unknownEntityNamespace('DSBlogBundle') 
#1 /Applications/MAMP/htdocs/symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php(554): Doctrine\ORM\Configuration->getEntityNamespace('DSBlogBundle') 
#2 /Applications/MAMP/htdocs/symfony/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php(194): Doctrine\ORM\Mapping\ClassMetadataFactory->getFqcnFromAlias('DSBlogBundle', 'Blog') 
#3 /Applications/MAMP/htdocs/symfony/vendor/doctrine/orm/lib/Doctrine/ORM/EntityManager.php(295): Doctrine\Common\Persistence\Mapping\AbstractClassMetadataFactory->getMetadataFor('DSBlogBundle:Bl...') 
#4 /Applications/MAMP/htdocs/symfony/vendor in /Applications/MAMP/htdocs/symfony/vendor/doctrine/orm/lib/Doctrine/ORM/ORMException.php on line 236

我没有得到的是'Unknown Entity namespace alias 'DSBlogBundle'在开发环境中完全“已知”。有谁知道我错过了什么?任何帮助深表感谢!谢谢!

1 个答案:

答案 0 :(得分:10)

我能想到的几种可能性:

1)如果您的代码在开发环境中正常运行,则可能是缓存问题和/或权限问题。确保您的文件可由与您的Web服务器关联的用户/进程读取,并确保该用户可以写入prod缓存目录,以便它可以生成必要的文件。我通常做的是运行clear cache console命令AS那个用户以避免意外的缓存问题,比如这个(在Linux上):

sudo -u www-user php app/console cache:clear --env=prod

如果您正在使用Linux进行开发,则必须以root或具有管理员权限的其他用户身份登录才能以非自己的用户身份运行命令。

2)您可能在dev环境中定义了prod环境中不存在的配置。仔细检查app/config文件夹中的文件。我的第一个猜测是DSBlogBundle app/AppKernel.php没有在{{1}}中正确定义,但我认为这与环境无关,因此无法在开发中工作,但不能生成。