【问题标题】:gRPC extension not installed in the right PHP version in Ubuntu 18.04gRPC 扩展未安装在 Ubuntu 18.04 的正确 PHP 版本中
【发布时间】:2020-10-22 10:43:26
【问题描述】:

我正在尝试按照官方guidance安装gRPC扩展

我已经完成了所有步骤,但在这些最后的步骤中,我明白了(我认为稍后会很重要)

$ cd grpc/src/php/ext/grpc
$ phpize
$ ./configure
$ make
$ sudo make install

安装共享扩展:/usr/lib/php/20190902/

在这里,我检查了那个文件夹并找到了grpc.so 文件。

此时,我希望安装扩展,我在php.ini(apache2 和 cli)中添加了extension=grpc.so。但它不起作用。

我尝试验证它,但它返回 false:var_dump(extension_loaded('grpc')); => bool(false)

现在,我检查了 apache2 日志文件,我看到了:

PHP 警告:PHP 启动:无法加载动态库 'grpc.so' (试过:/usr/lib/php/20180731/grpc.so(/usr/lib/php/20180731/grpc.so: 无法打开共享对象文件:没有这样的文件或目录), /usr/lib/php/20180731/grpc.so

可能的错误?

我的想法是,安装 grpc 扩展后,它安装在 /usr/lib/php/20190902/ 中(如您之前所见)。但是apache试图在/usr/lib/php/20180731/grpc.so中找到它

我不知道我做错了什么。我想我编辑了正确的php.ini 文件,因为当我编辑php_info() 时,我得到了这个:

Configuration File (php.ini) Path   /etc/php/7.3/apache2
Loaded Configuration File   /etc/php/7.3/apache2/php.ini
Scan this dir for additional .ini files /etc/php/7.3/apache2/conf.d

【问题讨论】:

  • 您是否尝试像您提到的链接grpc.io/docs/languages/php/quickstart/#using-pecl 中提到的那样只做sudo pecl install grpc
  • /usr/lib/php/20180731/grpc.so 似乎表明 Apache 是使用 PHP 7.3 安装的,而在您的命令行安装扩展程序 /usr/lib/php/20190902/ 似乎表明您的 cli PHP 在 PHP 7.4 上。那里似乎存在版本不匹配。
  • @StanleyCheung 我添加了一个答案。感谢您的帮助。

标签: php ubuntu grpc


【解决方案1】:

我已经解决了。显然pecl 需要在PHP version 我想要安装的内容上进行配置。像这样的东西,它被安装在我拥有的latest 版本上,7.4。但我需要它在7.3 版本中:

# cd ./grpc

# phpize7.3

# ./configure --with-php-config=/usr/bin/php-config7.3

# make clean

# make

# make install

【讨论】:

    【解决方案2】:

    我这样做是通过特定版本的 php for pecl 这样做的,并确保您将 php 版本设置为 ubuntu 中的默认版本:

    # modules of php 7.3 (state your correct version)
    sudo apt install php7.3-common php7.3-mysql php7.3-xml php7.3-xmlrpc php7.3-curl php7.3-gd php7.3-imagick php7.3-cli php7.3-dev php7.3-imap php7.3-mbstring php7.3-opcache php7.3-soap php7.3-zip php7.3-intl -y
    
    # module require
    sudo apt-get install php-pear phpunit
    
    # if you have previous version of grpc, uninstall it
    pecl uninstall grpc
    
    # install grpc base on specific version
    pecl -d php_suffix=7.3 install grpc
    

    在这里查看我的文章中的详细信息,我整合了 grpc 最相关的点,这也让我烦恼了几天:https://ask.osify.com/qa/11804

    【讨论】:

      猜你喜欢
      • 2018-10-25
      • 1970-01-01
      • 2019-01-11
      • 2013-01-08
      • 1970-01-01
      • 1970-01-01
      • 2018-12-30
      • 1970-01-01
      • 2023-04-08
      相关资源
      最近更新 更多