【发布时间】:2022-01-24 17:01:51
【问题描述】:
我在 ubuntu 16.04 上运行 php5.6。我正在尝试按照 aws 的步骤将文件上传到 s3 存储桶。运行代码时出现此错误:
PHP Fatal error: Class 'SimpleXMLElement' not found in .../vendor/aws/aws-sdk-php/src/Api/Parser/PayloadParserTrait.php on line 44
PHP Stack trace:
PHP 1. {main}() .../upload_to_s3.php:0
PHP 2. upload_to_s3() .../upload_to_s3.php:75
PHP 3. Aws\S3\S3Client->putObject() .../upload_to_s3.php:66
PHP 4. Aws\AwsClient->__call() .../upload_to_s3.php:66
PHP 5. Aws\AwsClient->execute() .../vendor/aws/aws-sdk-php/src/AwsClientTrait.php:86
PHP 6. GuzzleHttp\Promise\Promise->wait() .../vendor/aws/aws-sdk-php/src/AwsClientTrait.php:58
PHP 7. GuzzleHttp\Promise\Promise->waitIfPending() .../vendor/guzzlehttp/promises/src/Promise.php:62
PHP 8. GuzzleHttp\Promise\Promise->invokeWaitList() .../vendor/guzzlehttp/promises/src/Promise.php:226
PHP 9. GuzzleHttp\Promise\Promise->waitIfPending() .../vendor/guzzlehttp/promises/src/Promise.php:269
PHP 10. GuzzleHttp\Promise\Promise->invokeWaitList() .../vendor/guzzlehttp/promises/src/Promise.php:226
PHP 11. GuzzleHttp\Promise\Promise->waitIfPending() .../vendor/guzzlehttp/promises/src/Promise.php:269
PHP 12. GuzzleHttp\Promise\Promise->invokeWaitFn() .../vendor/guzzlehttp/promises/src/Promise.php:224
PHP 13. GuzzleHttp\Handler\CurlMultiHandler->execute() .../vendor/guzzlehttp/promises/src/Promise.php:248
PHP 14. GuzzleHttp\Handler\CurlMultiHandler->tick() .../vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php:145
PHP 15. GuzzleHttp\Promise\TaskQueue->run() .../vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php:118
PHP 16. GuzzleHttp\Promise\RejectedPromise::GuzzleHttp\Promise\{closure}() .../vendor/guzzlehttp/promises/src/TaskQueue.php:48
PHP 17. GuzzleHttp\Promise\Promise::GuzzleHttp\Promise\{closure}() .../vendor/guzzlehttp/promises/src/RejectedPromise.php:42
PHP 18. GuzzleHttp\Promise\Promise::callHandler() .../vendor/guzzlehttp/promises/src/Promise.php:169
PHP 19. Aws\WrappedHttpHandler->Aws\{closure}() .../vendor/guzzlehttp/promises/src/Promise.php:204
PHP 20. Aws\WrappedHttpHandler->parseError() .../vendor/aws/aws-sdk-php/src/WrappedHttpHandler.php:101
PHP 21. call_user_func:{.../vendor/aws/aws-sdk-php/src/WrappedHttpHandler.php:178}() .../vendor/aws/aw s-sdk-php/src/WrappedHttpHandler.php:178
PHP 22. Aws\Api\ErrorParser\XmlErrorParser->__invoke() .../vendor/aws/aws-sdk-php/src/WrappedHttpHandler.php:178
PHP 23. Aws\Api\ErrorParser\XmlErrorParser->parseXml() .../vendor/aws/aws-sdk-php/src/Api/ErrorParser/XmlErrorParser.php:42
我已经尝试安装 php-xml 并得到了这个:
php-xml is already the newest version (1:7.1+55+ubuntu16.04.1+deb.sury.org+1)
尝试安装特定版本,即。 apt install php5.6-xml 找不到包,并且 mods-available 中缺少 simplexml.conf 文件。
我在 /etc/php/7.0/mods-available 中有一个 simplexml.ini,并尝试切换到 php7.0 来尝试纠正这些问题,但无济于事。
对此的任何帮助将不胜感激。
【问题讨论】:
-
如果你这样做
php -m | grep xml,你会得到什么? -
输出为
libxml -
你安装了libxml吗?
-
这是我尝试安装 libxml
E: Unable to locate package libxml -
可能是 libxml2。见askubuntu.com/questions/733169/…
标签: php xml ubuntu amazon-s3 simplexml