Ubuntu 18.04 中的正确 PHP 版本中未安装 gRPC 扩展

L. *_*lor 4 php ubuntu grpc

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

我已经遵循了所有步骤,但在最后的步骤中,我得到了这个(我认为稍后会很重要)

$ cd grpc/src/php/ext/grpc
$ phpize
$ ./configure
$ make
$ sudo make install
Run Code Online (Sandbox Code Playgroud)

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

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

此时,我希望安装扩展,我已extension=grpc.sophp.ini(apache2 和 cli)中添加了该扩展。但这不起作用。

我尝试验证它,但它返回 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/(如您之前所见)。但阿帕奇正在试图找到它/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
Run Code Online (Sandbox Code Playgroud)

Osi*_*ify 10

我这样做是通过特定版本的 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
Run Code Online (Sandbox Code Playgroud)

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


L. *_*lor 5

我已经解决了。显然需要根据我想要安装的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
Run Code Online (Sandbox Code Playgroud)