【问题标题】:Notice: Undefined property: DOMDocument::$documentElement注意:未定义的属性:DOMDocument::$documentElement
【发布时间】:2017-03-14 11:42:23
【问题描述】:

我最近重新打开了一个旧的(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 虚拟机并测试一个新的 Symfony 项目,它运行良好,所以它一定与我笔记本电脑上的配置有关。

编辑 3 :
经过更多测试,这是我添加 print_r($dom); 时得到的结果。在文件 XmlUtils.php (vendor/symfony/symfony/src/Symfony/Component/Config/Util/XmlUtils.php) 第 59 行:

Ubuntu 虚拟机(无错误):

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 在我的笔记本电脑环境和虚拟机内部不会返回相同的值......知道为什么吗?

【问题讨论】:

    标签: symfony domdocument symfony-3.2


    【解决方案1】:

    我用 php7.0.15 安装了 Ubuntu 16.04,我通过删除 php-xdebug 扩展来修复错误。

    sudo apt-get purge php-xdebug

    【讨论】:

    • phpdismod xdebug && service php7.1-fpm restart 并且错误消失了。很奇怪……
    • purging xdebug 也为我修复了它
    【解决方案2】:

    我终于通过卸载/重新安装php7解决了这个问题。 我不知道为什么我会遇到这个问题......

    【讨论】:

      【解决方案3】:

      在我的例子中,错误是由 dom.so 扩展在两个地方加载的。删除一个解决了问题。

      【讨论】:

      • 谢谢,这个解决方案对我来说是最好的
      【解决方案4】:

      这可能是相关的: https://getcomposer.org/doc/articles/troubleshooting.md#xdebug-impact-on-composer

      TLDR:如果您将 xdebug 与 composer 一起使用,请使用 COMPOSER_ALLOW_XDEBUG=1

      【讨论】:

        【解决方案5】:

        这很奇怪,但是尝试在 php 配置中更改 php 扩展加载顺序。这解决了我的问题...在列表中将 dom 扩展移动到上方或下方

        【讨论】:

        • 对我来说,类似的解决方案已经奏效——我在 2 个地方有 dom 扩展。我将它从一个中删除,然后它开始工作。第二个可能被忽略了,所以扩展顺序很可能是问题所在。
        【解决方案6】:

        在我的例子中,dom 扩展被启用了两次。一次在dom.iniphp.ini 中。我从 php.ini 中删除了 extension=dom.so 条目并重新加载了 apache2 网络服务器。

        【讨论】:

          【解决方案7】:

          您好,我也遇到了这个问题。我的解决方法是:

          composer update

          希望对某人有所帮助。

          【讨论】:

          • 嗨,它没有解决我的问题,因为它与 Symfony 无关(我在 Symfony 之外进行了另一项测试,但我遇到了完全相同的错误)。
          • 是的,确实如此。我已经调试过了。一开始我以为是因为 XML 二进制库,但事实并非如此。当我更新并解决了我的问题时。
          • 我在 Symfony 之外也遇到了同样的问题,但也许你的问题实际上是另一个问题。我尝试了作曲家更新解决方案,但对我不起作用。
          • 谢谢。为我工作。
          【解决方案8】:

          感谢@pjehan。我有同样的问题,我已经失去了一天。最后,我确实喜欢你,而且很成功。 只需指定一件事:卸载 PHP 7.0.x 和 PHP 7.1.3 intaller(PHP 7 的稳定版本)。 PHP 7 stable 版本链接:http://php.net/downloads.php 非常感谢@pjehan,你救了我的命:D

          【讨论】:

          • 不客气,我希望我能找到确切的问题和另一种方法,而不是卸载和重新安装,但在花了 6 个小时试图找到解决方案后,我放弃并选择了最简单的方法来解决这个问题。我很高兴它帮助你思考?
          【解决方案9】:

          我通过禁用 cli 的 xdebug 解决了这个问题

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-04-17
            • 2016-11-12
            • 2011-03-05
            • 2015-02-27
            • 1970-01-01
            相关资源
            最近更新 更多