我在 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在哪里