[英]The requested PHP extension ext-mysql * is missing from your system. in php 7.1.7
[英]PHP | "The requested PHP extension bcmath is missing from your system."
问候开发人员,
我正在尝试在我最近启动的开发服务器上为我的 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 警告有关,但没有谷歌搜索结果将我引向正确的方向。
此外,我还提供了我的/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
php -m | grep name_of_the_modul
您可以根据您使用的操作系统安装它:
Ubuntu
sudo apt install php7.0-bcmath
CentOS
yum install bcmath
apt-get update apt-get install php7.2-bcmath
像魅力一样工作:)
对于 php Centos 中的任何版本使用
这个解决方案对我有用
yum 安装 php-bcmath
PHP 将采用机器中安装的默认版本,搜索该软件包并安装它。
如果已经创建,请删除文件 composer.lock 文件,然后再次运行,
作曲家安装
如果你跑
作曲家更新
它将更新 composer.json 中安装的任何默认包,这可能会给您带来问题。
对于 PHP 7.1,以下对我有用:
sudo apt install php7.1-bcmath
按类型检查您的 php 版本: php --version
你会看到这样的事情:
PHP 7.2.9-1+ubuntu16.04.1 ....
然后sudo apt install phpX.X-bcmath
其中 XX 是 php 版本,所以对于这个 ^ 示例,它将是sudo apt install php7.2-bcmath
在此检查模块是否存在之后,输入php -m | grep bcmath
php -m | grep bcmath
php 7.2 如果您有其他版本,请相应地更改它
对于CentOS
sudo yum install php72-bcmath
对于Ubuntu
sudo apt install php7.0-bcmath
在 Ubuntu 20.04 中
对于 php 7.4.3, sudo apt install php7.4-bcmath
运行这个命令,希望它会起作用
sudo apt-get install php-bcmath
希望这能解决问题。
sudo apt 安装 php-bcmath
如果您使用的是 Docker:
docker-php-ext-install bcmath
对于这个问题,我们应该使用sudo apt install php-bcmath
奇怪的事情在这里
几个月前,我以相同的方式安装了所有 PHP 版本。 这里有 4 个相同配置的 php 版本:5.6、7.0、7.1、7.2,具有相同的扩展(当这成为可能时)。
奇怪的是,除了 7.1 之外的所有 php 版本都存在bcmath 。
在解决方案搜索中,我到达了这个问题,其中逻辑的事情被确认安装 bcmath,但在我的 Linode Debian 9 服务器中,命令apt install php7.1-bcmath不起作用,有 3 条错误消息;
目标没有达到任何提示和技巧的组合,刷新apt缓存,更改Debian的镜像服务器,安装yum,等等......
经过一些尝试后,我得到了启发:修改/etc/apt/sources.list启用默认的 Linode 存储库,然后在apt 更新后(立即没有解决方案),我恢复了 /etc/apt/sources.list再次注释掉 Linode 镜像源。 神奇的是,在新的 apt 更新之后,命令现在正在运行。
通过这一点我确认: apt install php7.1-bcmath是正确的命令,但你的 Debian 可能需要一个踢屁股
使用此命令安装,这对我有用
apt-get install php-bcmath
我尝试了下面的包,它在 PHP 5.6 版中工作
yum install php56w-bcmath
sudo apt 安装 php7.3-bcmath
对于那些已经尝试安装 bc-math 但 composer 仍然出错的人。
试试这个命令
rm composer.lock
它一定会起作用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.