PHP | “La demande d'extension de PHP bcmath est absent de votre système.”
Salutations les autres développeurs,
Je suis en train d'utiliser composer pour un projet PHP de la mine sur un serveur de développement, j'ai récemment démarré et pour une raison que j'en suis incapable. J'ai installé avec succès compositeur, cependant, lorsque j'essaie d'exécuter le besoin commande j'obtiens l'erreur suivante:
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.
Je suis en supposant que c'est quelque chose à voir avec le PHP warning, j'obtiens droit lors de l'exécution de la compositeur besoin de commande, mais pas de résultats de recherche google me diriger vers la bonne direction.
En outre, j'ai donné mon /etc/php/7.0/cli/php.ini fichier en cas d'erreur dans ce fichier.
https://gist.github.com/anonymous/bc5bac59d684cbf575cef931ef36daf6 (Je ne pouvais pas inclure le fichier dans ce post, en raison de la limite de caractères sur des poteaux.)
Merci.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser la fonction get_loaded_extensions pour voir si
bcmath
module est chargé. Ou dans le terminalphp -m
ouphp -m | grep name_of_the_modul
Vous pouvez l'installer en fonction de l'OS que vous utilisez:
Ubuntu
sudo apt install php7.0-bcmath
CentOS
yum install bcmath
PHP 7.2
Debian jessie
travail comme un charme 🙂
Pour PHP 7.1, le suivant a fonctionné pour moi:
vérifier votre version de php par type:
php --version
vous verrez quelque chose comme ceci:
puis
sudo apt install phpX.X-bcmath
où X. X est la version de php, donc pour cette ^ exemple, il serasudo apt install php7.2-bcmath
après cette case si le module existé ou pas selon le type
php -m | grep bcmath
Pour n'importe quelle version de php Centos utilisation
Cette solution a fonctionné pour moi
yum install php-bcmath
PHP va prendre la version par défaut installé sur la machine, la recherche de ce paquet et l'installer.
Supprimer le fichier composer.verrouillage de fichier, si ce n'est déjà créé, puis exécutez de nouveau,
compositeur installer
Si vous exécutez
compositeur de mise à jour
il mettra à jour ce que par défaut les paquets sont installés dans compositeur.json qui pourrait créer un problème pour vous.
espère que cela va résoudre le problème.
php 7.2 si vous avez d'autres versions, il suffit de changer en conséquence
Pour
CentOS
Pour
Ubuntu
sudo apt install php7.2-bcmath
Chose d'étrange ici
Il y a quelques mois j'ai installé toutes les versions de PHP, de la même manière. En voici les 4 configurés à l'identique de la version de php: 5.6, 7.0, 7.1, 7.2, avec les mêmes extensions ( lorsque cela a été possible ).
La chose étrange est que bcmath est présent pour toutes les version de php à l'exclusion 7.1.
Dans la recherche de solution j'arrive ici, dans cette question, où la logique des choses a été confirmé l'installation de bcmath, mais dans mon Linode Debian 9 serveur la commande
apt install php7.1-bcmath
ne fonctionne pas, avec 3 messages d'erreur;
Les objectifs rencontrent pas avec n'importe quelle combinaison de conseils et d'astuce, rafraîchissante apt cache, changer de Debian en miroir du serveur, l'installation de yum, etc...
Après quelques tentatives, j'ai eu une illumination: modificating de /etc/apt/sources.liste l'activation par défaut Linode référentiel, puis, après un apt update (avec pas de solution dans l'immédiat), j'ai restauré le /etc/apt/sources.liste des commentaires les Linode sources d'un miroir de nouveau. Comme par magie, après la nouvelle apt mise à jour de la commande sont maintenant de travail.
Par la présente, je confirme: apt install php7.1-bcmath est le bon de commande, mais votre Debian peut avoir besoin d'un coup de pied dans le cul
Pour ce problème, nous devrions l'utiliser sudo apt install php-bcmath
J'ai essayé ci-dessous paquet et il a travaillé dans la version de Php 5.6