如何在 Ubuntu 上安装“ext-grpc”或“grpc”?

问题描述 投票:0回答:1

我试图在我的 Laravel 10 项目中安装 google/cloud-firestore 包。然后我收到了这个错误。

Problem 1
    - google/cloud-firestore is locked to version v1.31.0 and an update of this package was not requested.
    - google/cloud-firestore v1.31.0 requires ext-grpc * -> it is missing from your system. Install or enable PHP's grpc extension.

我尝试在我的系统上使用 pecl 安装此扩展,但这并没有按我的预期工作。我还在我的 php.ini 文件中添加了 extension=grpc.so

php laravel grpc php-extension
1个回答
0
投票

理解错误:

此错误表明 google/cloud-firestore 软件包(在您的情况下为 v1.31.0)需要 ext-grpc PHP 扩展,而您的系统中缺少该扩展。 ext-grpc 扩展支持与 gRPC(远程过程调用)服务器进行通信,这对于在 Laravel 应用程序中使用 Google Cloud Firestore 至关重要。

解决问题:

  1. 验证 PHP 版本:

确保您使用的是 PHP 7.2 或更高版本,因为 ext-grpc 不适用于旧版本。您可以通过在终端中运行 php -v 来检查您的 PHP 版本。

  1. 安装 ext-grpc 扩展:

如果您的系统支持 apt、yum 或 pecl 等包管理器,请使用适当的命令安装扩展。以下是一些示例:

        sudo apt install php8.1-grpc  # For Debian/Ubuntu (replace 8.1 with your PHP version)

        sudo yum install php-grpc      # For CentOS/RHEL

        pecl install grpc              # Using PECL
  1. 启用扩展:

    • 编辑 PHP 配置文件 (php.ini)。确切位置可能会有所不同,具体取决于您的系统。您通常可以在 /etc/php/8.1/cli/php.ini 中找到它或使用 php --ini 来找到它。

    • php.ini 文件中,搜索行 extension=grpc(对于较旧的 PHP 版本,搜索 extension=php_grpc.dll)。如果它被注释掉(前面有一个分号 ;),请通过删除分号来取消注释。

    • 将更改保存到 php.ini

  2. 重新启动 PHP 服务器:

    • 如果您使用的是 Apache 或 Nginx 等 Web 服务器,请重新启动它以反映在 php.ini 中所做的更改。确切的命令可能会根据您的服务器设置而有所不同。
    • 或者您可以使用 sudo systemctl restart php8.1-fpm
    • 重新启动 PHP
  3. 验证安装:

    • 运行 php -i |在终端中使用 grep grpc 。您应该看到指示 grpc 扩展已加载的输出。

通过仔细执行这些步骤,您应该能够解决 ext-grpc 缺失错误,并在 Laravel 10 应用程序中成功使用 google/cloud-firestore 包。

© www.soinside.com 2019 - 2024. All rights reserved.