Не работает библиотека 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.