功能:bcmod不可用

时间:2012-05-16 20:33:49

标签: php

我在安装一个joomla组件时遇到以下错误。

功能:bcmod不可用。请询问您的主机如何在PHP安装中启用此功能。

4 个答案:

答案 0 :(得分:7)

您需要使用bcmath支持编译PHP(--enable-bcmath configure选项)。如果您在共享主机上,则不太可能为您启用它。因此,您可以从此页面尝试PHP手册中的解决方案:http://ru.php.net/manual/en/function.bcmod.php我没有尝试过,但您可以测试它:

/** 
 * my_bcmod - get modulus (substitute for bcmod) 
 * string my_bcmod ( string left_operand, int modulus ) 
 * left_operand can be really big, but be carefull with modulus :( 
 * by Andrius Baranauskas and Laurynas Butkus :) Vilnius, Lithuania 
 **/ 
function my_bcmod( $x, $y ) 
{ 
    // how many numbers to take at once? carefull not to exceed (int) 
    $take = 5;     
    $mod = ''; 

    do 
    { 
        $a = (int)$mod.substr( $x, 0, $take ); 
        $x = substr( $x, $take ); 
        $mod = $a % $y;    
    } 
    while ( strlen($x) ); 

    return (int)$mod; 
} 

// example 
echo my_bcmod( "7044060001970316212900", 150 ); 

答案 1 :(得分:1)

您可以使用安装程序安装 bcmath 包。 我使用的是 CentOS,所以我的命令相对不同。您可以根据您的操作系统使用。

yum install php-bcmath

安装软件包后,

如果你使用的是php-fpm,那么你需要使用

重启php-fpm服务
systemctl restart php-fpm

最后需要重启http服务器

systemctl restart nginx

答案 2 :(得分:0)

如果您有专用服务器,请尝试https://stackoverflow.com/a/25229386/8015825此处提供的解决方案。

  

在重新编译之前,检查php.ini文件并搜索“ bcmath”。   您可能会发现bcmath.scale = 0。如果是这样,请将0更改为2。

然后重新启动http服务器

答案 3 :(得分:0)

需要在 Debian 10 上安装库,还要在安装 bcmath 之前删除存储库的过期密钥

apt-key list 2>/dev/null | grep expired -B 1
apt-key del 95BD4743
apt-key list | grep expired
wget -O /etc/apt/trusted.gpg.d/deb.sury.gpg https://packages.sury.org/php/apt.gpg
apt-get update
apt install php7.2-bcmath
systemctl restart apache2