Я запускаю локальное веб-приложение поверх Vagrant с Apache и PHP7.
Я пытался добавить сломанную зависимость разными способами, и пока у меня не получалось.
Пользуюсь scotchbox и пока решения от них не нашел.
Вот некоторые из шагов, которые я выполняю для решения других проблем:
sudo apt-get update --fix-missing
sudo composer self-update
sudo service apache2 restart
sudo apt-get install php7.0-soap
sudo service apache2 restart
composer install
Я получаю вот такую ошибку:
An uncaught Exception was encountered
Type: Error
Message: Class 'DOMDocument' not found
Filename: /var/www/mytestsite.local/public/application/third_party/vendor/symfony/serializer/Encoder/XmlEncoder.php
Line Number: 88
Backtrace:
File: /var/www/mytestsite.local/public/application/third_party/vendor/symfony/serializer/Encoder/ChainDecoder.php
Line: 40
Function: decode
File: /var/www/mytestsite.local/public/application/third_party/vendor/symfony/serializer/Serializer.php
Line: 269
Function: decode
File: /var/www/mytestsite.local/public/application/third_party/vendor/googleads/googleads-php-lib/src/Google/AdsApi/AdWords/Reporting/v201609/ReportDownloader.php
Line: 149
Function: decode
File: /var/www/mytestsite.local/public/application/third_party/vendor/googleads/googleads-php-lib/src/Google/AdsApi/AdWords/Reporting/v201609/ReportDownloader.php
Line: 126
Function: makeReportRequest
File: /var/www/mytestsite.local/public/application/libraries/Googleads.php
Line: 231
Function: downloadReportWithAwql
File: /var/www/mytestsite.local/public/application/controllers/Mbt.php
Line: 691
Function: getCostByAdGrp
File: /var/www/mytestsite.local/public/index.php
Line: 316
Function: require_once
У меня была такая же проблема и со scotchbox, после установки Symfony с помощью их установщика и желания запустить демонстрационный проект. (запуск новой демо-версии Symfony на коробке через ssh).
Это ошибка, которую я получил:
Неперехваченная ошибка: класс 'DOMDocument' не найден в /var/www/public/demo/vendor/symfony/symfony/src/Symfony/Component/Config/Util/XmlUtils.php:52 Трассировка стека: # 0
Я последовал совету Жана Поля Руиса, но у меня сложилось впечатление, что нужно переустановить еще больше, чтобы вернуть коробку на место. При запуске приложения в браузере мне представили белый экран.
Я смог решить проблему, когда прочитал этот пост на https://bugs.php.net/bug.php?id=74865
Запуск php -i или php -m на scotchbox тоже дал мне эти ошибки.
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/dom.so' - /usr/lib/php/20151012/dom.so: undefined symbol: php_libxml_node_free_list in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/xmlreader.so' - /usr/lib/php/20151012/xmlreader.so: undefined symbol: dom_node_class_entry in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/xsl.so' - /usr/lib/php/20151012/xsl.so: undefined symbol: dom_node_class_entry in Unknown on line 0
Как указано в сообщении выше, решением для меня было просто запустить apt-get update и apt-get upgrade на scotchbox ... после этого запустится приложение symfony. ТАДААА!
Ура Хенк
Итак, в конце концов, решение заключалось в том, чтобы удалить PHP с компьютера, переустановить его и добавить необходимые пакеты:
очистить php
sudo apt-get purge php.*
sudo service apache2 restart
sudo apt-get update
sudo apt-get install php
sudo service apache2 restart
начать установку всех пакетов php
sudo apt-get install php-mysql
sudo service apache2 restart
sudo apt-get install php-mbstring
sudo service apache2 restart
sudo apt-get install php-xml
sudo service apache2 restart
Надеюсь, это поможет любому, у кого такая же проблема.