開発者仲間の皆さん、
私が最近起動した開発サーバー上の私のcomposerプロジェクトにPHPを使用しようとしていますが、何らかの理由で使用できません。 composerを正常にインストールしましたが、requireコマンドを実行しようとすると、次のエラーが表示されます。
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.
composer requireコマンドを実行するとすぐに受信するPHP警告と関係があると想定していますが、Google検索結果が正しい方向に導きません。
さらに、そのファイルでエラーが発生した場合に備えて、/ etc/php/7.0/cli/php.iniファイルを提供しました。
https://Gist.github.com/anonymous/bc5bac59d684cbf575cef931ef36daf6(この投稿にファイルを含めることができませんでした投稿の文字数制限)
ありがとうございました。
関数 get_loaded_extensions を使用して、bcmath
モジュールがロードされているかどうかを確認できます。または、ターミナルphp -m
またはphp -m | grep name_of_the_modul
で
使用しているOSに応じてインストールできます。
Ubuntu
Sudo apt install php7.0-bcmath
CentOS
yum install bcmath
apt-get update apt-get install php7.2-bcmath
魅力のように働く:)
PHP 7.1の場合、次のことがうまくいきました。
Sudo apt install php7.1-bcmath
PHP Centosのどのバージョンでも使用
このソリューションは私のために働いた
yum install php-bcmath
PHPは、マシンにインストールされているデフォルトバージョンを使用し、そのパッケージを検索してインストールします。
ファイルcomposer.lockが既に作成されている場合は削除し、再度実行します。
作曲家のインストール
走ったら
作曲家の更新
composer.jsonにインストールされているデフォルトパッケージが更新されるため、問題が発生する可能性があります。
タイプ別にphpバージョンを確認します:php --version
次のようなものが表示されます。
PHP 7.2.9-1+ubuntu16.04.1 ....
Sudo apt install phpX.X-bcmath
ここで、X.Xはphpバージョンなので、この^の例ではSudo apt install php7.2-bcmath
になります
このチェックの後、タイプphp -m | grep bcmath
によるモジュールが存在するかどうか
php 7.2他のバージョンがある場合は、それに応じて変更してください
CentOS
の場合
Sudo yum install php72-bcmath
Ubuntu
の場合
Sudo apt install php7.0-bcmath
これで問題が解決することを願っています。
Sudo apt install php-bcmath
ここで奇妙なこと
数か月前、すべてのPHPバージョンを同じ方法でインストールしました。ここには、同じように構成された4つのphpバージョン5.6、7.0、7.1、7.2があり、同じ拡張子が付いています(これが可能になったとき)。
奇妙なことは、bcmathが7.1を除くすべてのphpバージョンに存在することです。
ソリューション検索では、bcmathのインストールでロジックの事柄が確認されたこの質問にここに到着しましたが、私のLinode Debian 9サーバーではコマンドapt install php7 .1-bcmathは機能せず、3つのエラーメッセージが表示されます。
目標は、ヒントとトリックの組み合わせ、aptキャッシュの更新、Debianのミラーサーバーの変更、yumのインストールなどとは一致しません...
いくつかの暫定案の後、照明がありました:/ etc/apt/sources.listの修正apt update(すぐに解決策はありません)の後、/ etc/apt/sources.listを復元しましたLinodeミラーソースを再びコメントアウトします。魔法のように、新しいapt更新後、コマンドは現在機能しています。
これにより、私は確認します:apt install php7.1-bcmathは正しいコマンドですが、Debianを起動する必要がある場合がありますお尻
この問題にはSudo apt install php-bcmathを使用する必要があります
私はパッケージを試してみましたが、Phpバージョン5.6で動作しました
yum install php56w-bcmath