如何获取某个 PHP 版本的 phpize?

如何获取某个 PHP 版本的 phpize?

如果我跑phpize -v然后我得到

Configuring for:
PHP Api Version:         20170718
Zend Module Api No:      20170718
Zend Extension Api No:   320170718

如果我打开 phpinfo 那么它会显示较新的日期

在此输入图像描述

所以我的 phpize 已经过时了。


这是以下的输出php -v

PHP 7.4.21 (cli) (built: Jul  1 2021 16:09:41) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.21, Copyright (c), by Zend Technologies

如果我创建一个 php 信息页面并显示它,那么它会显示PHP 版本 7.4.21

如何获取 php 7.4 的 phpize ?

答案1

显示所有已安装的 phpize 版本在类似 Debian 的系统上使用一致的软件包进行安装:

sudo update-alternatives --config phpize

您将看到 phpize 版本列表

root@my-server:~# sudo update-alternatives --config phpize
There are 3 choices for the alternative phpize (providing /usr/bin/phpize).

  Selection    Path                     Priority   Status
------------------------------------------------------------
* 0            /usr/bin/phpize.default   100       auto mode
  1            /usr/bin/phpize.default   100       manual mode
  2            /usr/bin/phpize8.1        81        manual mode
  3            /usr/bin/phpize8.2        82        manual mode

Press <enter> to keep the current choice[*], or type selection number:

击中所需号码。

附:您必须安装phpize不同版本的 PHP 才能使其出现在上面。安装 PHP 8.1 运行sudo apt-get install php8.1-dev

答案2

弄清楚了。

首先我搜索了 php7:

apt-cache search php7.4

然后我发现php7.4-dev并安装它:

sudo apt install php7.4-dev

这安装phpize7.4/usr/bin

最后一步是将 phpize 设置为新版本:

sudo update-alternatives --set phpize /usr/bin/phpize7.4

现在phpize -v输出:

Configuring for:
PHP Api Version:         20190902
Zend Module Api No:      20190902
Zend Extension Api No:   320190902

答案3

您可能还需要更改./configure版本:

phpize8.1
./configure --with-php-config=/usr/bin/php-config8.1 [...]

语境:

当我安装了许多 php 版本(8.0、8.1、8.2)时,我必须为 php8.1 编译 php 模块。所以我的主要版本是 8.2,并且模块未正确编译(8.2 而不是 8.1)。无论如何,这并不能回答作者的问题,但它可能会帮助一些遇到同样问题并且与我有同样情况的人。

相关内容