grpc 示例 php,“Class 'Grpc\ChannelCredentials' 未找到。”从浏览器打开时,从终端工作

grpc example php, “Class 'Grpc\ChannelCredentials' not found.” when oppening from browser, works from terminal

我有以下问题:

我安装了 grpc 并得到了给定的示例 (https://grpc.io/docs/languages/php/quickstart/) 以从终端 (Windows PowerShell) 运行 中使用 PHP run_greeter_client.sh 文件(以及使用 link 提到的更改发送两条 'Hello World' 消息而不是一条消息的同一文件)。我还在 php.ini 文件中添加了扩展名=grpc.so,所以我什至可以使用指令“php greeter_client.php”从终端 运行 它。我使用节点 .\greeter_server.js 指令来 运行 服务器。相反,当我尝试从浏览器 运行 php 文件时,它显示我有一个 HTTP 错误 500,当我检查日志时,我发现了以下内容:

PHP Fatal error:  Uncaught Error: Class 'Grpc\ChannelCredentials' not found 
in D:\MAMP\grpc\grpc\examples\php\greeter_client.php:30
Stack trace:
#0 D:\MAMP\grpc\grpc\examples\php\greeter_client.php(50): 
greet('localhost:50051', 'world')
#1 {main}
  thrown in D:\MAMP\grpc\grpc\examples\php\greeter_client.php on line 30

这看起来很奇怪,因为当我使用 PHP 命令从 PowerShell(终端)运行 它时,它 运行 正确地显示了 2 'Hello World' 消息但是从出现问题的浏览器(使用来自另一个 PowerShell 的相同节点 js 服务器)。您知道问题出在哪里吗?

非常感谢,如果您需要有关问题的更多详细信息,请不要关闭问题,我可以提供您询问的任何信息,请发表评论。

我终于解决了这个问题,每当我 运行 来自终端的文件时,它使用的 php.ini 文件都有一个特定的位置,我已经更改为包含 grpc 扩展名。虽然,我从浏览器 运行 时使用的 php.ini 文件的位置是错误的。如果您遇到类似的问题,您可以从浏览器查阅 phpinfo 页面,并在“加载的配置文件”字段指示的路径中找到 php.ini 文件。谢谢!