52ky 发表于 2022-5-3 10:13:40

尽管在 CLI 上工作,但 PHP grpc 扩展在 WAMP 上不起作用

问题
在尝试使用 PHP 为 Firestore 安装 grpc 大约一周后,我设法让它工作,但只有在终端/cmd 中运行时。这个 php.ini/environment 位于我桌面上的一个文件夹中,当使用 firestore 命令执行文件时它可以工作。没有错误。

但是,当在 WAMP 中时,页面会崩溃:
Fatal error: Uncaught Google\Cloud\Core\Exception\GoogleException: The requested client requires the gRPC extension. Please see https://cloud.google.com/php/grpc for installation instructions. in D:\wamp64\www\karma\vendor\google\cloud-core\src\ClientTrait.php:76 Stack trace: #0 D:\wamp64\www\karma\vendor\google\cloud-firestore\src\FirestoreClient.php(139): Google\Cloud\Firestore\FirestoreClient->requireGrpc() #1 D:\wamp64\www\karma\functions.php(32): Google\Cloud\Firestore\FirestoreClient->__construct(Array) #2 D:\wamp64\www\karma\Firestore.php(8): Firestore->__construct('test') #3 {main} thrown in D:\wamp64\www\karma\vendor\google\cloud-core\src\ClientTrait.php on line 76
现在真正奇怪的是,我从桌面复制了这个目录并粘贴到了 WAMP PHP 区域,没有任何区别。它甚至在配置文件中说 php_grpc 已加载!我不认为底层 dll 是必需的,所以我不认为它们是缺失的问题,但我觉得很奇怪桌面上的同一目录将从命令行运行 php 文件,而不是在 WAMP 中。 WAMP 是 64 位的,插件也是。 wamp 的 PHP 版本是 7.0.1,但我用新的 7.4.x 版本替换了整个 7.0.1 文件夹,就像那个版本的插件一样。

为什么它说它已加载但未加载?

回答
我不得不完全重新安装 wamp 来修复这个错误,在一个新目录中,重新安装 php 并确保我有正确的 grpc 版本。我不知道是什么导致了这个错误,但是尝试每个最新的 grpc 版本(我认为有四个)并确保复制配置文件中每个添加的格式。

我在 WAMP 之外安装了一个新的 php 程序,它工作正常,但是 WAMP 自己的程序被窃听



页: [1]
查看完整版本: 尽管在 CLI 上工作,但 PHP grpc 扩展在 WAMP 上不起作用