无法使用 ddev 为 php7.4 启用 php-gmp

unable to enable php-gmp for php7.4 with ddev

因为这条错误信息the requested PHP extension gmp is missing from your system 我想使用 DDEV.

gmp 扩展名 添加到 php 7.4

首先我创建了一个.ddev/php/文件夹并创建了一个99-gmp.ini文件。 其次,我将 extension=php_gmp.so 添加到 99-gmp.ini

我 ssh 登录 ddev ssh 和 运行:

sudo apt install php-gmp

sudo apt-get install php-gmp

sudo apt-get install php7.4-gmp 并尝试了一些变体,但找不到包

搜索 apt search php-gmp 结果:

Reading package lists... DoneBuilding dependency tree Reading state information... Done E: Unable to locate package php-gmp

apt search gmp 产生 3 个包,都已安装:

Full Text Search... Done

libgmp10/now 2:6.1.2+dfsg-4 amd64 [已安装,本地] 多精度算术库

libhogweed4/now 3.4.1-1 amd64 [已安装,本地] 低级密码库(public-密钥密码)

libnettle6/now 3.4.1-1 amd64 [已安装,本地] 低级密码库(对称和单向密码)

正在寻找 php7.4 扩展: apt search php7.4 由于某种原因未找到 gmp

Sorting... Done Full Text Search... Done

libapache2-mod-php7.4/now 7.4.8-1+0~20200713.23+debian10~1.gbpb2c15c amd64 [已安装,本地] 服务器端,HTML-嵌入式脚本语言(Apache 2 module)

php7.4-bcmath/now 7.4.8-1+0~20200713.23+debian10~1.gbpb2c15c amd64 [已安装,本地] Bcmath module for PHP

php7.4-bz2/now 7.4.8-1+0~20200713.23+debian10~1.gbpb2c15c amd64 [已安装,本地] bzip2 module 用于 PHP

php7.4-cgi/now 7.4.8-1+0~20200713.23+debian10~1.gbpb2c15c amd64 [已安装,本地] 服务器端,HTML-嵌入式脚本语言(CGI 二进制)

php7.4-cli/now 7.4.8-1+0~20200713.23+debian10~1.gbpb2c15c amd64 [已安装,本地] PHP 脚本语言

的命令行解释器

php7.4-common/now 7.4.8-1+0~20200713.23+debian10~1.gbpb2c15c amd64 [已安装,本地] PHP

的文档、示例和通用 mod 规则

php7.4-curl/now 7.4.8-1+0~20200713.23+debian10~1.gbpb2c15c amd64 [已安装,本地] CURL mod 用于 PHP

的规则

php7.4-fpm/now 7.4.8-1+0~20200713.23+debian10~1.gbpb2c15c amd64 [已安装,本地] 服务器端,HTML-嵌入式脚本语言(FPM-CGI 二进制文件)

php7.4-gd/now 7.4.8-1+0~20200713.23+debian10~1.gbpb2c15c amd64 [已安装,本地] GD mod规则 PHP

php7.4-intl/now 7.4.8-1+0~20200713.23+debian10~1.gbpb2c15c amd64 [已安装,本地] PHP

的国际化 mod 规则

php7.4-json/now 7.4.8-1+0~20200713.23+debian10~1.gbpb2c15c amd64 [已安装,本地] JSON mod规则 PHP

php7.4-ldap/now 7.4.8-1+0~20200713.23+debian10~1.gbpb2c15c amd64 [已安装,本地] PHP

的 LDAP module

php7.4-mbstring/now 7.4.8-1+0~20200713.23+debian10~1.gbpb2c15c amd64 [已安装,本地] MBSTRING mod 用于 PHP

的规则

php7.4-mysql/now 7.4.8-1+0~20200713.23+debian10~1.gbpb2c15c amd64 [已安装,本地] MySQL mod规则 PHP

php7.4-opcache/now 7.4.8-1+0~20200713.23+debian10~1.gbpb2c15c amd64 [已安装,本地] Zend OpCache module for PHP

php7.4-pgsql/now 7.4.8-1+0~20200713.23+debian10~1.gbpb2c15c amd64 [已安装,本地] PostgreSQL mod 用于 PHP

的规则

php7.4-phpdbg/now 7.4.8-1+0~20200713.23+debian10~1.gbpb2c15c amd64 [已安装,本地] 服务器端,HTML-嵌入式脚本语言(PHPDBG 二进制)

php7.4-readline/now 7.4.8-1+0~20200713.23+debian10~1.gbpb2c15c amd64 [已安装,本地] readline module for PHP

php7.4-soap/now 7.4.8-1+0~20200713.23+debian10~1.gbpb2c15c amd64 [已安装,本地] PHP

的 SOAP mod 规则

php7.4-sqlite3/now 7.4.8-1+0~20200713.23+debian10~1.gbpb2c15c amd64 [已安装,本地] SQLite3 module for PHP

php7.4-xml/now 7.4.8-1+0~20200713.23+debian10~1.gbpb2c15c amd64 [已安装,本地] DOM、简单XML、XML 和 PHP

的 XSL module

php7.4-xmlrpc/now 7.4.8-1+0~20200713.23+debian10~1.gbpb2c15c amd64 [已安装,本地] XMLRPC-EPI mod用于 PHP

的规则

php7.4-zip/now 7.4.8-1+0~20200713.23+debian10~1.gbpb2c15c amd64 [已安装,本地] 为 PHP

压缩 module

项目信息

PHP版本:7.4 OS:Debian 10 启用 NFS 挂载:false 数据库类型:mariadb MariaDB 版本:10.3

通常,您应该通过将 webimage_extra_packages 添加到您的配置中来添加包(请参阅 documentation):

webimage_extra_packages: [php7.4-gmp]

使用 ddev restart 重新启动容器时,将应用此配置并安装包。你试过这个吗?

使用这种方式有助于将此包与 ddev 使用的容器联系起来。虽然将它添加到 运行 容器(就像你所做的那样)并没有明显错误,但如果你更改 PHP 版本或升级 ddev,这个包将再次被删除。通过配置,可以保证容器镜像发生变化时,重新安装该包。