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
Samuel Tierra
Si está utilizando Docker:
- bcmath se puede instalar ejecutando este comando dentro de un contenedor:
docker-php-ext-install bcmath
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