我有 centos 8,php 8.1 当我尝试安装 php-gmp 时
dnf install php-gmp
Last metadata expiration check: 2:31:28 ago on Mon 08 Apr 2024 10:55:57 PM +05.
Package php-gmp-8.1.27-1.el8.remi.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
它说一切都已经安装了,好吧,我在终端中写入php -m
,我也在列表中找到了它,gmp
我什至在 php.ini 中注册了它extension=gmp
。但当phpinfo()
除了gmp
寻找
GNU GMP support Stanislav Malyshev
不起作用+错误:
Fatal error: Uncaught Error: Call to undefined function gmp_init()
我尝试重新安装模块,重新启动所有 php、httpd 和服务器本身几次。
这不是第一次问这个问题,但没有很快找到合适的重复项,所以又问了一次。
所有类似“扩展已安装,但未找到”的问题都有同样最简单的解释:系统中可能存在多个版本的 PHP。您在其中一个中安装扩展并签入另一个。
而且,即使是同一版本,cli 和 php-fpm 的设置也可能不同。
控制台中的“phpinfo”是
php -i
。输入并确保您的库已完美连接。而且当你在浏览器中查看 phpinfo() 的输出时,它不是控制台 PHP 的输出,而是 php-fpm 的输出。因此,首先,您需要找到“加载的配置文件”这一行。该文件负责配置 PHP,处理来自浏览器的请求。此外,在 Linux 中,通常不会编辑此文件来安装扩展,并且对它的所有更改都是由包管理器进行的。
在您的特定情况下,可以在控制台中使用单版本包,而在 Web 服务器中使用多版本包。
因此,您需要弄清楚 php-fpm 使用的是哪个版本的 PHP 并为其安装扩展。之后,重新启动相应的 php-fpm 服务。