1

我在 Ubutu 服务器上有一个项目。我不断收到以下错误

\FatalThrowableError: Call to undefined function bandwidthThrottle\tokenBucket\util\bcsub()
in vendor/bandwidth-throttle/token-bucket/classes/util/TokenConverter.php:80


 public function convertMicrotimeToTokens($microtime)
    {
        $delta = bcsub(microtime(true), $microtime, $this->bcScale); // <--- this line
        return $this->convertSecondsToTokens($delta);
    }

我们使用的包是 bandwidth-throttle/token-bucket,我们使用的是 2.0

我已确保在服务器上的每个 php 版本中都安装了 bcmath

我跑了以下;

sudo apt-get install php7.1-bcmath
sudo apt-get install php7.2-bcmath
sudo apt-get install php7.3-bcmath
sudo apt-get install php7.4-bcmath

sudo service apache2 restart

当我运行“php -r”print_r(get_loaded_extensions());“”时,我得到以下信息,所以我知道它在那里,但我的项目无论如何都会抛出错误

Array
(
    [0] => Core
    [1] => date
    [2] => libxml
    [3] => openssl
    [4] => pcre
    [5] => zlib
    [6] => filter
    [7] => hash
    [8] => pcntl
    [9] => Reflection
    [10] => SPL
    [11] => session
    [12] => standard
    [13] => sodium
    [14] => mysqlnd
    [15] => PDO
    [16] => xml
    [17] => bcmath
    [18] => calendar
    [19] => ctype
    [20] => curl
    [21] => dom
    [22] => mbstring
    [23] => FFI
    [24] => fileinfo
    [25] => ftp
    [26] => gd
    [27] => gettext
    [28] => iconv
    [29] => json
    [30] => ldap
    [31] => exif
    [32] => mysqli
    [33] => pdo_mysql
    [34] => pdo_pgsql
    [35] => pgsql
    [36] => Phar
    [37] => posix
    [38] => readline
    [39] => shmop
    [40] => SimpleXML
    [41] => sockets
    [42] => sysvmsg
    [43] => sysvsem
    [44] => sysvshm
    [45] => tokenizer
    [46] => xmlreader
    [47] => xmlwriter
    [48] => xsl
    [49] => Zend OPcache
)

我还跑了 print_r(get_loaded_extensions()); 在网络服务器上下文中(如:通过浏览器获取它,而不是在 shell 上)

...
[13] => apache2handler 
[14] => mysqlnd 
[15] => PDO 
[16] => xml 
[17] => bcmath <-------
[18] => calendar 
[19] => ctype 
...

有什么建议吗?

- 编辑

我现在发现设置的php版本是7.2,我知道php.ini在哪里

4

0 回答 0