我最近重新开了一个旧的(1年)Symfony项目,我在每一页上都有错误(我不记得一年前有这个问题):
[exception] 500 | Internal Server Error | Symfony\Component\Config\Exception\FileLoaderLoadException
/var/www/[...]/wdt.xml
ContextErrorException: Notice: Undefined property: DOMDocument::$documentElement
如果我清除缓存,则错误消失,但是一旦我编辑并保存文件,错误就会再次出现。 该项目使用Symfony 2.8,我更新到Symfony 3.2,但它没有解决问题。
我不认为问题与wdt.xml文件有关,我认为它可能与我的笔记本电脑配置有关。
我真的不知道从哪里开始调查,所以欢迎任何建议!
编辑1 :
我实际上遇到了与我几天前创建的另一个项目相同的问题。该项目不使用任何其他捆绑包,我只创建了5个实体并生成了MySQL数据库。
编辑2 :
经过一些研究,我决定创建一个新的Ubuntu VM并测试一个新的Symfony项目,它只是完美地工作,所以它必须与我的笔记本电脑上的配置有关。
编辑3 :
经过一些更多的测试,这是我在添加print_r($ dom)时得到的;在文件XmlUtils.php(vendor / symfony / symfony / src / Symfony / Component / Config / Util / XmlUtils.php)第59行:
Ubuntu VM(无错误):
DOMDocument Object ( [doctype] => [implementation] => (object value omitted) [documentElement] => (object value omitted) [actualEncoding] => [encoding] => [xmlEncoding] => [standalone] => 1 [xmlStandalone] => 1 [version] => 1.0 [xmlVersion] => 1.0 [strictErrorChecking] => 1 [documentURI] => /var/www/my_project/web/ [config] => [formatOutput] => [validateOnParse] => 1 [resolveExternals] => [preserveWhiteSpace] => 1 [recover] => [substituteEntities] => [nodeName] => #document [nodeValue] => [nodeType] => 9 [parentNode] => [childNodes] => (object value omitted) [firstChild] => (object value omitted) [lastChild] => (object value omitted) [previousSibling] => [attributes] => [ownerDocument] => [namespaceURI] => [prefix] => [localName] => [baseURI] => /var/www/my_project/web/ [textContent] => %kernel.charset% %kernel.default_locale% )
Ubuntu笔记本电脑(错误):
DOMDocument Object ( [validateOnParse] => 1 [nodeName] => #document [nodeValue] => [nodeType] => 9 [parentNode] => [childNodes] => (object value omitted) [firstChild] => (object value omitted) [lastChild] => (object value omitted) [previousSibling] => [attributes] => [ownerDocument] => [namespaceURI] => [prefix] => [localName] => [baseURI] => /var/www/lab/symfony/booklib/web/ [textContent] => %kernel.charset% %kernel.default_locale% )
我的笔记本电脑上看起来有一些缺失信息......
基本上,函数$ dom-> loadXML在我的笔记本电脑环境和VM内部都没有返回相同的值...任何想法为什么?
答案 0 :(得分:7)
我使用php7.0.15安装了Ubuntu 16.04,我通过删除php-xdebug扩展来修复错误。
sudo apt-get purge php-xdebug
答案 1 :(得分:2)
我终于通过卸载/重新安装php7解决了这个问题。 我不知道为什么我有这个问题...
答案 2 :(得分:2)
在我的情况下,错误是由dom.so扩展在两个地方加载而触发的。删除一个修复了问题。
答案 3 :(得分:1)
这很奇怪但是尝试在php配置中更改php扩展加载顺序。这解决了我的问题...在列表
上方或下方移动dom扩展名答案 4 :(得分:1)
这可能是相关的: https://getcomposer.org/doc/articles/troubleshooting.md#xdebug-impact-on-composer
TLDR:如果将xdebug与作曲家结合使用,请使用A1
。
答案 5 :(得分:0)
您好,我也遇到了这个问题。我解决它的方式是:
composer update
希望有所帮助。
答案 6 :(得分:0)
感谢@pjehan。我有同样的问题,我失去了一天。最后,我确实喜欢你,但它很成功。 只需指定一件事:unistall PHP 7.0.x和PHP 7.1.3 intaller(PHP 7的稳定版本)。 PHP 7版本的链接:http://php.net/downloads.php 非常感谢,@ pjehan,你救了我的命:D
答案 7 :(得分:0)
我通过为cli
禁用xdebug解决了这个问题答案 8 :(得分:0)
在我的情况下,dom扩展已启用两次。一次进入dom.ini
,也进入php.ini
。我从php.ini中删除了extension=dom.so
条目,并重新加载了apache2 Web服务器。