【问题标题】:Missing BC Math or GMP extension in LaravelLaravel 中缺少 BC 数学或 GMP 扩展
【发布时间】:2019-04-25 12:34:33
【问题描述】:

我在 Ubuntu 16.04 上的 PHP 7.2-fpm 上运行 Laravel 5.7.14。

我在本地环境中的代码运行良好,但将其上传到生产服务器后,我收到以下错误消息:Missing BC Math or GMP extension.

我已经安装了 GMP + BC Math。当我运行命令php -i | grep -i bcmath 我得到这个:

/etc/php/7.2/cli/conf.d/20-bcmath.ini,
bcmath
BCMath support => enabled
bcmath.scale => 0 => 0

当我运行 php -m 时,我得到了这个:

[PHP Modules]
bcmath
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
json
libxml
mbstring
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
Phar
posix
readline
Reflection
session
shmop
SimpleXML
sockets
sodium
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xml
xmlreader
xmlrpc
xmlwriter
xsl
Zend OPcache
zip
zlib

[Zend Modules]
Zend OPcache

我已多次重启服务器并清除了 Laravel 的缓存,但没有任何变化,我不断收到此错误消息。

我在这里缺少什么?如果您需要更多信息,请随时询问。

【问题讨论】:

  • 尝试创建一条路线,例如Route::get('info', function () { phpinfo(); }) 确保 fpm 配置与命令行配置匹配。有时网络服务器被配置为使用与命令行使用的不同/旧版本的 PHP
  • @apokryfos 你是对的,我是多么愚蠢。它使用的是 php 7.1 而不是 7.2...我以为我已经升级了。无论如何感谢这个。如果您希望我接受,请回答:-)

标签: php laravel ubuntu server gmp


【解决方案1】:

管理多个 PHP 版本有时很麻烦。

如果您在类似 Linux 的系统上并尝试升级 PHP 版本,您有时会在同一系统上获得 2 个版本。经常(尤其是当您手动配置了以前的版本时)新安装的版本无法与网络服务器一起使用。就我个人而言,我也经历过升级 PHP 并让 apache 使用新版本,但作为一个模块而不是 FPM,所以如果你使用 apache,你也应该小心,因为 FPM 和 apache 的 PHP 模块可能有不同的配置以及。

【讨论】:

    猜你喜欢
    • 2021-12-03
    • 2011-10-07
    • 2017-01-05
    • 2010-11-13
    • 2013-05-21
    • 1970-01-01
    • 1970-01-01
    • 2017-11-25
    • 1970-01-01
    相关资源
    最近更新 更多