it-swarm.com.de

PHP | "Die angeforderte PHP "Die Erweiterung bcmath fehlt auf Ihrem System."

Liebe Entwickler,

Ich versuche, Composer für ein PHP Projekt von mir auf einem Entwicklungsserver zu verwenden, den ich kürzlich hochgefahren habe und aus irgendeinem Grund nicht. Ich habe Composer jedoch erfolgreich installiert. Wenn ich versuche, den Befehl erforderlich auszuführen, wird die folgende Fehlermeldung angezeigt:

[email protected]:/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.

Ich gehe davon aus, dass es etwas mit der PHP Warnung zu tun hat, die ich richtig erhalte, wenn ich den Befehl Komponist erforderlich ausführe, aber keine Google-Suchergebnisse führen mich in die richtige Richtung.

Außerdem habe ich meine /etc/php/7.0/cli/php.ini -Datei angegeben, falls in dieser Datei ein Fehler aufgetreten ist.

https://Gist.github.com/anonymous/bc5bac59d684cbf575cef931ef36daf6(Die Datei konnte aufgrund der Zeichenbeschränkung in Beiträgen nicht in diesen Beitrag aufgenommen werden.

Vielen Dank.

23
Coelho

Sie können die Funktion get_loaded_extensions verwenden, um festzustellen, ob das Modul bcmath geladen ist. Oder im Terminal php -m oder php -m | grep name_of_the_modul

Sie können es je nach verwendetem Betriebssystem installieren:

Ubuntu

Sudo apt install php7.0-bcmath

CentOS

yum install bcmath

47
JTC

Für PHP 7.1 funktionierte für mich Folgendes:

Sudo apt install php7.1-bcmath
8
eVagabond

PHP 7.2

Debian - Jessie

apt-get update

apt-get install php7.2-bcmath

arbeit wie ein Zauber :)

6
chebaby

Überprüfen Sie Ihre PHP-Version nach Typ: php --version

sie werden so etwas sehen:

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

dann Sudo apt install phpX.X-bcmath wobei X.X die PHP-Version ist, also für dieses ^ Beispiel Sudo apt install php7.2-bcmath

nach dieser Prüfung, ob Modul vorhanden ist oder nicht, nach Typ php -m | grep bcmath

5
Khaled

Für jede Version in PHP-Centos verwenden

Diese Lösung hat für mich funktioniert

yum install php-bcmath

PHP verwendet die auf dem Computer installierte Standardversion, sucht nach diesem Paket und installiert es.

Löschen Sie die Datei composer.lock, falls diese bereits erstellt wurde, und führen Sie sie erneut aus.

composer installieren

Wenn du läufst

composer update

alle in composer.json installierten Standardpakete werden aktualisiert, was zu Problemen für Sie führen kann.

4
Sayan Biswas

php 7.2 wenn du eine andere version hast ändere sie einfach entsprechend

Für CentOS

Sudo yum install php72-bcmath

Für Ubuntu

Sudo apt install php7.0-bcmath
4
Hamza Zymawy

ich hoffe, das wird das Problem beheben.

Sudo apt install php-bcmath

3
sh6210

Für dieses Problem sollten wir Sudo apt install php-bcmath verwenden

1
Amir Zandieh

Ich habe es unterhalb des Pakets ausprobiert und es funktionierte in PHP-Version 5.6

yum install php56w-bcmath
0
Palanikumar

Seltsame Sache hier
Vor einigen Monaten habe ich alle PHP -Versionen auf dieselbe Weise installiert. Hier sind die 4 identisch konfigurierten Versionen von PHP: 5.6, 7.0, 7.1, 7.2 mit den gleichen Erweiterungen (sofern dies möglich war).
Das Seltsame war, dassbcmathfür alle PHP-Versionen mit Ausnahme von 7.1 vorhanden ist.
In der Lösungssuche komme ich hier in dieser Frage an, wo die Logik der Installation von bcmath bestätigt wurde, aber in meinem Linode-Debian-9-Server der Befehl apt install php7.1-bcmath funktioniert nicht mit 3 Fehlermeldungen;

  • E: Das Paket php7.1-bcmath kann nicht gefunden werden
  • E: Es ist nicht möglich, ein Paket mit glob "php7.1-bcmath" zu finden
  • E: Es wurde kein Paket mit dem regulären Ausdruck "php7.1-bcmath" gefunden.

Die Ziele mit keiner Kombination von Tipps und Tricks erfüllen, apt Cache aktualisieren, den gespiegelten Server von Debian ändern, yum installieren, usw.

Nach einigen Vorschlägen hatte ich eine Beleuchtung: Modifizieren von/etc/apt/sources.listAktivieren des Standard-Linode-Repositorys, dann nach einemapt-Update(ohne Lösung in Ich habe die /etc/apt/sources.list wiederhergestellt, indem ich die Linode-Spiegelquellen erneut kommentierte. Magisch, nach dem neuen apt Update funktioniert der Befehl jetzt.

Damit bestätige ich:apt install php7.1-bcmathist der richtige Befehl, aber Ihr Debian kann einen Tritt in den Arsch brauchen

0
iodurocarburo