“La extensión de PHP solicitada bcmath no se encuentra en su sistema”.

4 minutos de lectura

Avatar de usuario de Coelho
Coelho

Saludos compañeros desarrolladores,

Estoy tratando de usar Composer para un proyecto PHP mío en un servidor de desarrollo que inicié recientemente y por alguna razón no puedo. Instalé con éxito Composer, sin embargo, cuando intento ejecutar el requerir comando me sale el siguiente error:

root@webserver:/var/mypersonal/index# composer require php-amqplib/php-amqplib
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/php_openssl.dll' - /usr/lib/php/20151012/php_openssl.dll: cannot open shared object file: No such file or directory in Unknown on line 0
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Using version ^2.6 for php-amqplib/php-amqplib
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - php-amqplib/php-amqplib v2.6.3 requires ext-bcmath * -> the requested PHP extension bcmath is missing from your system.
    - php-amqplib/php-amqplib v2.6.2 requires ext-bcmath * -> the requested PHP extension bcmath is missing from your system.
    - php-amqplib/php-amqplib v2.6.1 requires ext-bcmath * -> the requested PHP extension bcmath is missing from your system.
    - php-amqplib/php-amqplib v2.6.0 requires ext-bcmath * -> the requested PHP extension bcmath is missing from your system.
    - Installation request for php-amqplib/php-amqplib ^2.6 -> satisfiable by php-amqplib/php-amqplib[v2.6.0, v2.6.1, v2.6.2, v2.6.3].

  To enable extensions, verify that they are enabled in your .ini files:
    - /etc/php/7.0/cli/php.ini
    - /etc/php/7.0/cli/conf.d/10-mysqlnd.ini
    - /etc/php/7.0/cli/conf.d/10-opcache.ini
    - /etc/php/7.0/cli/conf.d/10-pdo.ini
    - /etc/php/7.0/cli/conf.d/20-calendar.ini
    - /etc/php/7.0/cli/conf.d/20-ctype.ini
    - /etc/php/7.0/cli/conf.d/20-exif.ini
    - /etc/php/7.0/cli/conf.d/20-fileinfo.ini
    - /etc/php/7.0/cli/conf.d/20-ftp.ini
    - /etc/php/7.0/cli/conf.d/20-gettext.ini
    - /etc/php/7.0/cli/conf.d/20-iconv.ini
    - /etc/php/7.0/cli/conf.d/20-json.ini
    - /etc/php/7.0/cli/conf.d/20-mysqli.ini
    - /etc/php/7.0/cli/conf.d/20-pdo_mysql.ini
    - /etc/php/7.0/cli/conf.d/20-phar.ini
    - /etc/php/7.0/cli/conf.d/20-posix.ini
    - /etc/php/7.0/cli/conf.d/20-readline.ini
    - /etc/php/7.0/cli/conf.d/20-shmop.ini
    - /etc/php/7.0/cli/conf.d/20-sockets.ini
    - /etc/php/7.0/cli/conf.d/20-sysvmsg.ini
    - /etc/php/7.0/cli/conf.d/20-sysvsem.ini
    - /etc/php/7.0/cli/conf.d/20-sysvshm.ini
    - /etc/php/7.0/cli/conf.d/20-tokenizer.ini
  You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.

Installation failed, deleting ./composer.json.

Supongo que tiene algo que ver con la advertencia de PHP que recibo justo cuando ejecuto el el compositor requiere comando pero ningún resultado de búsqueda de Google me lleva a la dirección correcta.

Además, he proporcionado mi /etc/php/7.0/cli/php.ini archivo en caso de un error en ese archivo.

https://gist.github.com/anonymous/bc5bac59d684cbf575cef931ef36daf6 (No pude incluir el archivo en esta publicación debido al límite de caracteres en las publicaciones).

Puedes usar la función get_loaded_extensions para ver si bcmath el módulo está cargado. o en la terminal php -m o php -m | grep name_of_the_modul

Puede instalarlo según el sistema operativo que esté utilizando:

ubuntu

sudo apt install php7.0-bcmath

CentOS

yum install bcmath

  • Solo una nota sobre la instalación, si ejecuta php -v puede verificar qué versión de PHP está ejecutando. El mío era PHP 7.1.8-1ubuntu1. Como estoy usando 7.1, tuve que instalar php7.1-bcmath en su lugar.

    – Alex L.

    22 de noviembre de 2017 a las 10:45

PHP 7.2

Debian-jessie

apt-get update

apt-get install php7.2-bcmath

trabajar como un encanto 🙂

  • trabajando para mí, solo necesitamos cambiar la versión de php y el nombre del paquete en el código de línea de comando según el requisito. Ex. sudo apt install php7.3-mbstring

    – Akhilesh Kumar

    28 de mayo de 2021 a las 13:33

Para cualquier versión en uso de php Centos

Esta solucion funciono para mi

yum instalar php-bcmath

PHP tomará la versión predeterminada instalada en la máquina, buscará ese paquete y lo instalará.

Elimine el archivo composer.lock si ya está creado y vuelva a ejecutarlo,

instalación del compositor

Si tu corres

actualización del compositor

actualizará los paquetes predeterminados que estén instalados en composer.json, lo que podría crearle un problema.

En Ubuntu 20.04

Para PHP 7.4.3, sudo apt install php7.4-bcmath

Para PHP 7.1, lo siguiente funcionó para mí:

sudo apt install php7.1-bcmath

Avatar de usuario de Samuel Terra
Samuel Tierra

Si está utilizando Docker:

  • bcmath se puede instalar ejecutando este comando dentro de un contenedor: docker-php-ext-install bcmath

Avatar de usuario de Khaled Alam
Khaled Alam

verifique su versión de php por tipo: php --version

Verás algo como esto:

PHP 7.2.9-1+ubuntu16.04.1 ....

entonces sudo apt install phpX.X-bcmath donde XX es la versión de php, por lo que para este ejemplo ^ será sudo apt install php7.2-bcmath

después de esto, verifique si el módulo existió o no por tipo php -m | grep bcmath

¿Ha sido útil esta solución?