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.
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
Für PHP 7.1 funktionierte für mich Folgendes:
Sudo apt install php7.1-bcmath
apt-get update apt-get install php7.2-bcmath
arbeit wie ein Zauber :)
Ü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
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.
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
ich hoffe, das wird das Problem beheben.
Sudo apt install php-bcmath
Für dieses Problem sollten wir Sudo apt install php-bcmath verwenden
Ich habe es unterhalb des Pakets ausprobiert und es funktionierte in PHP-Version 5.6
yum install php56w-bcmath
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;
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