我正在使用 Apache 和 PHP7 在 Vagrant 上运行本地 Web 应用程序。
我一直尝试通过多种方式添加损坏的依赖关系,但到目前为止还没有成功。
我正在使用 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
答案1
在使用 scotchbox 的安装程序安装 symfony 并想要运行演示项目后,我也遇到了同样的问题。(通过 ssh 在盒子上运行 symfony 新演示)。
这是我收到的错误:
未捕获错误:未在 /var/www/public/demo/vendor/symfony/symfony/src/Symfony/Component/Config/Util/XmlUtils.php:52 中找到类“DOMDocument”堆栈跟踪:#0
我听从了 Jean Paul Ruiz 的建议,但我觉得需要重新安装更多东西才能让盒子回到原来的位置。在浏览器中运行应用程序时,我看到了一个白屏。
当我读到这篇文章时,我就能解决这个问题了https://bugs.php.net/bug.php?id=74865
在 scotchbox 上运行 php -i 或 php -m 也出现了这些错误。
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 更新和apt-get 升级在 Scotchbox 上...之后 symfony 应用程序就会运行。TaDAAA!
干杯,亨克
答案2
好的,最后,解决方案是从机器中清除 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
希望这能帮助遇到同样问题的人。