【发布时间】:2015-03-22 08:11:58
【问题描述】:
我的 Symfony2 生产部署存在一些问题,
我尝试了很多解决方案,但都没有奏效。
在生产环境中访问我的 symfony 应用程序时随机出现此错误:
( ! ) Fatal error: Uncaught exception 'Symfony\Component\Debug\Exception\ContextErrorException' with message 'Warning: simplexml_load_file(): I/O warning : failed to load external entity "/home/user/symfony/vendor/friendsofsymfony/user-bundle/Resources/config/doctrine/model/User.orm.xml"' in /home/user/symfony/app/bootstrap.php.cache on line 2998
( ! ) Symfony\Component\Debug\Exception\ContextErrorException: Warning: simplexml_load_file(): I/O warning : failed to load external entity "/home/user/symfony/vendor/friendsofsymfony/user-bundle/Resources/config/doctrine/model/User.orm.xml" in /home/user/symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/Driver/XmlDriver.php on line 736
Call Stack
# Time Memory Function Location
1 0.0000 262880 {main}( ) ../app_dev.php:0
2 0.0015 572736 Symfony\Component\HttpKernel\Kernel->handle( ) ../app_dev.php:79
3 0.1342 4023952 Symfony\Component\HttpKernel\DependencyInjection\ContainerAwareHttpKernel->handle( ) ../bootstrap.php.cache:2376
( ! ) LogicException: Request stack is empty in /home/user/symfony/app/bootstrap.php.cache on line 2998
Call Stack
# Time Memory Function Location
1 0.3330 7110120 Symfony\Component\Debug\ErrorHandler->handleException( ) ../classes.php:0
2 0.3331 7119696 Symfony\Component\Debug\ErrorHandler->handleException( ) ../classes.php:1939
我尝试升级我的 php 版本(我在 php 5.4.x 中,现在在 5.6.4 中),
我尝试升级lixml2版本(我现在在2.8.0,但我已经尝试在2.9.3升级)
我已经声明php中使用的libxml的版本总是2.8.0,但是,我还没有找到改变这个的方法,
我尝试在 chmod 777 中设置 symfony 的所有目录
我的服务器是 debian 7.5 服务器。
也许知道这个错误的人可以帮助我
这里是一些与此相关的不同问题的链接:
Random Error、FOSUserBundle Error 和 Service error
我没有在其中发帖,因为它们都已经过时了
[编辑]
我找到了一个快速修复,但它在供应商中,因此它将在第一次更新学说更新时被覆盖:
XmlDriver.php 第 737 行中的 QuickFix
$xmlElement = @simplexml_load_file($file);
if(!$xmlElement){
$xmlData = file_get_contents($file);
$xmlElement = simplexml_load_string($xmlData);
}
【问题讨论】:
-
除了你改变了不好的供应商这一事实之外,添加一个@来隐藏一个致命错误更糟糕,你的 php 脚本停止并且你甚至没有意识到它,它看起来没有错误但你之后会在不知道为什么的情况下注意到一些奇怪的行为。
-
是的,我知道这个 quickfix 不是解决方案,但总比没有好!
标签: php symfony doctrine-orm libxml2