Не работает библиотека PHP-GMP хотя она установлена PHP 8.1

У меня 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 и сам сервер по нескольку раз.


Ответы (1 шт):

Автор решения: Ипатьев

Вопрос задают далеко не в первый раз, но подходящий дубликат быстро не находится, поэтому ещё раз.

Все вопросы вида "расширение установлено, но не находится" имеют одно и то же простейшее объяснение: В системе может быть несколько версий РНР. Вы устанавливаете расширение в одну, а проверяете в другой.

Причем даже одна и та же версия может иметь разные настройки для cli и php-fpm.

"phpinfo" в консоли - это php -i. Наберите и убедитесь, что ваша библиотека прекрасно подключена.

А когда вы смотрите вывод phpinfo() в браузере, то это вывод не консольного РНР, а php-fpm. Поэтому в первую очередь вам нужно найти строчку "Loaded configuration file". Вот это и есть тот файл, который отвечает за конфигурацию РНР, обрабатывающего запросы из браузера. Причем в Linux для установки расширений этот файл обычно НЕ редактируется, а все изменения в него вносятся пакетным менеджером.

В вашем конкретном слчае в консоли может использоваться одноверсионный пакет, а для вебрсервера - мульти-версионный.

Поэтому надо разобраться, какая версия РНР используется в php-fpm, и установить расширение для неё. После этого рестартовать соответствующей сервис php-fpm.

→ Ссылка