PHP安装GMP扩展

windows和linux环境下 PHP安装GMP扩展笔记

目录

Gmp介绍

window安装gmp扩展

Linux环境安装

遇到问题

解决步骤

Linux 系统版本

PHP版本

更新源

备份原有源配置

更新缓存

安装 libgmp-dev

宝塔面板安装

查看php扩展

简单测试

总结


Gmp介绍

PHP GMP是PHP的GNU Multiple Precision扩展库,用于处理任意精度的整数运算。

以下是核心信息:

支持大整数运算(如加减乘除、幂运算等)

提供最大公约数(GCD)、最小公倍数(LCM)等数学函数

可处理字符串或整数输入,自动识别进制(如gmp_init("101", 2))

window安装gmp扩展

打开小皮面板,从网站的php扩展中找到gmp,点击

Linux环境安装

在宝塔面板软件商店中应用分类-已安装找到php,选择设置>安装扩展,在扩展列表中找到gmp选择安装,如下:

遇到问题

显示安装成功,但是扩展中没有gmp,查看安装日志如下:

解决步骤
Linux 系统版本
# 查看系统版本(CentOS/Ubuntu 通用)
cat /etc/os-release

PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
PHP版本
PHP 7.4.33 (cli) (built: Oct 26 2022 15:17:18) ( NTS )
更新源

(解决 Debian 11 官方源可能缺少 PHP 扩展的问题)

apt update && apt upgrade –y

E: The repository 'http://mirrors.cloud.tencent.com bullseye/updates Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details
备份原有源配置

避免误操作后无法恢复。先备份当前的 sources.list 文件,后续有问题可还原:

cp /etc/apt/sources.list /etc/apt/sources.list.bak
cp /etc/apt/sources.list.d/php.list /etc/apt/sources.list.d/php.list.bak  # 备份之前添加的 PHP 源

提示:

cp: cannot stat '/etc/apt/sources.list.d/php.list': No such file or directory
root@C202508289285:/www/wwwroot/bike# cp /etc/apt/sources.list.d/php.list /etc/apt/sources.list.d/php.list.bak
cp: cannot stat '/etc/apt/sources.list.d/php.list': No such file or directory

不影响,继续执行。

修改主源文件

删除原有错误的腾讯云源,替换为阿里云的 Debian 11 官方镜像源(同步及时、稳定):

清空原有主源,写入阿里云 Debian 11 镜像源(稳定无错),

写入完整的阿里云源(包含所有必需组件)

cat > /etc/apt/sources.list << EOF
deb http://mirrors.aliyun.com/debian/ bullseye main contrib non-free
deb-src http://mirrors.aliyun.com/debian/ bullseye main contrib non-free
deb http://mirrors.aliyun.com/debian-security/ bullseye-security main contrib non-free
deb-src http://mirrors.aliyun.com/debian-security/ bullseye-security main contrib non-free
deb http://mirrors.aliyun.com/debian/ bullseye-updates main contrib non-free
deb-src http://mirrors.aliyun.com/debian/ bullseye-updates main contrib non-free
deb http://mirrors.aliyun.com/debian/ bullseye-backports main contrib non-free
deb-src http://mirrors.aliyun.com/debian/ bullseye-backports main contrib non-free
EOF
更新缓存
apt clean && apt autoclean && apt update –y

安装 libgmp-dev
apt install -y libgmp-dev

宝塔面板安装

重新通过宝塔面板的软件商店的php中安装gmp扩展。

日志如下:

已安装列表

查看php扩展

使用phpinfo,查看扩展中是否有gmp扩展

简单测试

测试一下是否可以正常使用gmp扩展。

示例代码:

$num1 = gmp_init("12345678901234567890");
$num2 = gmp_init("98765432109876543210");
echo gmp_add($num1, $num2);die; // 输出大整数和

当没有开启gmp扩展时,提示:

开启后,效果如下:

111111111011111111100

总结

windows和linux环境下 PHP安装GMP扩展笔记,依赖都已安装的情况下其实很简单

### 如何通过 Yum 源安装 PHPGMP 扩展 在 CentOS 或其他基于 RPM 的 Linux 发行版中,可以通过 `yum` 命令轻松安装 PHPGMP 扩展。以下是具体操作方法: #### 1. 确认已启用必要的软件仓库 为了成功安装 PHP 及其扩展模块,需确保系统启用了支持的第三方存储库(例如 Remi 或 EPEL)。如果尚未配置这些存储库,则可以按照以下命令进行设置。 对于 CentOS/RHEL 7 和 8 用户来说,通常需要先安装 epel-release 软件包以及 remi 存储库: ```bash sudo yum install -y epel-release sudo rpm -Uvh https://rpms.remirepo.net/enterprise/remi-release-$(rpm -E '%{rhel}').rpm ``` #### 2. 启用对应版本的 PHP 模块 根据实际使用的 PHP 版本来决定是否切换到特定的 SCL(Software Collections)环境或者直接更新默认工具链至最新稳定发行版。这里假设目标为 PHP 7.x系列为例说明过程: 执行下面这条指令可激活Remi安全镜像中的php74子集功能特性开关: ```bash sudo dnf module reset php sudo dnf module enable php:remi-7.4 ``` #### 3. 使用YUM安装PHP-GMP组件 一旦完成了前期准备工作之后就可以正式开始引入所需的数学运算库了——即GNU Multiple Precision Arithmetic Library (GMP),它提供了处理大整数的能力给脚本语言调用接口层面上的支持。 ```bash sudo yum install -y php-gmp ``` 此命令会下载并部署好所有依赖关系项连同主体程序本身一起完成整个流程自动化构建工作. #### 4. 验证安装结果 最后一步就是确认刚才的操作成果无误啦!我们可以借助如下几种方式来进行验证测试: ```bash # 查看当前加载的所有可用模块列表里是否有"gmp" php -m | grep gmp # 或者也可以尝试运行一段简单的代码片段看看能否正常返回预期值. <?php echo(gmp_strval(gmp_init(123))); ?> ``` 以上步骤涵盖了从准备阶段到最后检验环节完整的指导手册内容[^1][^4]. ```python import subprocess def check_php_module(module_name): result = subprocess.run(['php', '-m'], stdout=subprocess.PIPE) modules = result.stdout.decode('utf-8') return module_name in modules print(check_php_module('gmp')) ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JSON_L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值