php7.3安装php7.3-gmp扩展踩坑总结
环境:
容器里面为php7.3.3版本
服务器也为php7.3.3-14版本,但是因为业务量太大需要在服务器里面跑脚本
容器里面为 alpine 系统,安装各种扩展
服务器里面开发服为 ubuntu 16.04.7 LTS (Xenial Xerus) 系统
服务器线上为 ubuntu 20.04.6 LTS (Focal Fossa) 系统
发现容器里面有 php-gmp,而服务器里面没有,需要在服务器里面安装 php7.3-gmp
换源发现
阿里源 和 清华源的 ubuntu 18.04 LTS (bionic)系统为 php7.2-gmp
阿里源 和 清华源的 ubuntu 20.04 LTS (focal)系统为 php7.4-gmp
root@39:/etc/apt/sources.list.d# apt search php gmp
Sorting... Done
Full Text Search... Done
php-gmp/focal,focal 2:7.4+75 allGMP module for PHP [default]php7.4-gmp/focal-updates 7.4.3-4ubuntu2.28 amd64GMP module for PHP
无法安装 php7.3-gmp 扩展,然后直接查看阿里源的ubuntu系统确定没有 php7.3-gmp,安装 debian 的包也不支持

通过ppa仓库进行安装,然后发现开发服安装 ppa仓库之后还是没有该包
add-apt-repository ppa:ondrej/php
或如下建议
LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
回车
这样就安装好了 ppa 仓库
这里是开发服执行
相当于如下配置
www-data@39:~$ cat /etc/apt/sources.list.d/ondrej-ubuntu-php-xenial.list
deb http://ppa.launchpad.net/ondrej/php/ubuntu xenial main
# deb-src http://ppa.launchpad.net/ondrej/php/ubuntu xenial main
然后发现没有 php7.3-gmp
严重踩坑
弄错很久一直没安装成功在网上找到了说是7.3版本的 gmp.so
然后下载下来复制带对应的路径,这里是/usr/lib/php/20180731/gmp.so
然后编写配置文件启动才成功找到
root@server:/etc/apt# cat /etc/php/7.3/cli/conf.d/20-gmp.ini
; configuration for php gmp module
; priority=20
extension=gmp.so
php -m | grep gmp 验证,还不确定能不能使用
如果不知道 gmp.so 是复制到哪里,php -m | grep gmp 会显示哪个目录缺少该文件,直接复制过去即可
因为 dpkg -l | grep gmp 并没有发现安装了该包
后面新开虚拟机 和 线上服务器系统一样为 ubuntu 20.04.6 LTS (Focal Fossa) 系统
重新通过添加 ppa 仓库进行安装
LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
回车
安装完毕之后可查看
root@server:/etc/apt# cat /etc/apt/sources.list.d/ondrej-ubuntu-php-focal.list
deb http://ppa.launchpad.net/ondrej/php/ubuntu focal main
# deb-src http://ppa.launchpad.net/ondrej/php/ubuntu focal main## 发现是版本不一样,安装的 ppa 仓库也不一样
## 该ppa仓库存在各种包使用,可直接进行安装
root@server:/etc/apt# apt search php gmp
Sorting... Done
Full Text Search... Done
php-gmp/focal 2:8.3+95+ubuntu20.04.1+deb.sury.org+1 allGMP module for PHP [default]php5.6-gmp/focal 5.6.40-81+ubuntu20.04.1+deb.sury.org+1 amd64GMP module for PHPphp7.0-gmp/focal 7.0.33-79+ubuntu20.04.1+deb.sury.org+1 amd64GMP module for PHPphp7.1-gmp/focal 7.1.33-65+ubuntu20.04.1+deb.sury.org+1 amd64GMP module for PHPphp7.2-gmp/focal 7.2.34-54+ubuntu20.04.1+deb.sury.org+1 amd64GMP module for PHPphp7.3-gmp/focal,now 7.3.33-24+ubuntu20.04.1+deb.sury.org+1 amd64 [installed]GMP module for PHPphp7.4-gmp/focal 1:7.4.33-18+ubuntu20.04.1+deb.sury.org+1 amd64GMP module for PHPphp8.0-gmp/focal 1:8.0.30-12+ubuntu20.04.1+deb.sury.org+1 amd64GMP module for PHPphp8.1-gmp/focal 8.1.31-1+ubuntu20.04.1+deb.sury.org+1 amd64GMP module for PHPphp8.2-gmp/focal 8.2.27-1+ubuntu20.04.1+deb.sury.org+1 amd64GMP module for PHPphp8.3-gmp/focal 8.3.16-1+ubuntu20.04.1+deb.sury.org+1 amd64GMP module for PHPphp8.4-gmp/focal 8.4.3-1+ubuntu20.04.1+deb.sury.org+1 amd64GMP module for PHP
直接如下安装即可
apt-get install php7.3-gmp
安装完成验证
root@server:/etc/apt# ll /etc/php/7.3/cli/conf.d/20-gmp.ini
lrwxrwxrwx 1 root root 35 Feb 5 08:43 /etc/php/7.3/cli/conf.d/20-gmp.ini -> /etc/php/7.3/mods-available/gmp.iniroot@server:/etc/apt# cat /etc/php/7.3/cli/conf.d/20-gmp.ini
; configuration for php gmp module
; priority=20
extension=gmp.soroot@server:/etc/apt# php -m | grep gmp
gmproot@server:/etc/apt# dpkg -l | grep gmp
ii libgmp10:amd64 2:6.2.0+dfsg-4ubuntu0.1 amd64 Multiprecision arithmetic library
ii php7.3-gmp 7.3.33-24+ubuntu20.04.1+deb.sury.org+1 amd64 GMP module for PHP## ii为已经安装,验证安装成功
总结: 添加ppa仓库会根据服务器本身的版本系统,可以灵活进行添加
更改/etc/apt/sources.list.d/ondrej-ubuntu-php-focal.list 仓库对应的配置
然后 apt update 更新即可
这里踩坑严重,使用了 ubuntu 16 版本的ppa一直找不到扩展
如果开发服也想安装,直接复制虚拟机或者线上的 ppa 的仓库地址到开发服修改更新即可
参考命令如下
php -v
php --ini
LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
apt update
apt search php gmp
apt install php7.3-gmp
dpkg -l | grep gmp
php -m | grep gmp
find / -name "gmp.so" 发现是 /usr/lib/php/20180731/gmp.so
之后只要通过ubuntu安装php及其扩展,都可以考虑使用 ppa 仓库进行安装
不过建议ubuntu系统最低为 ubuntu 16 版本,否则需要手动更改高版本仓库的 ppa 仓库
相关文章:
php7.3安装php7.3-gmp扩展踩坑总结
环境: 容器里面为php7.3.3版本 服务器也为php7.3.3-14版本,但是因为业务量太大需要在服务器里面跑脚本 容器里面为 alpine 系统,安装各种扩展 服务器里面开发服为 ubuntu 16.04.7 LTS (Xenial Xerus) 系统 服务器线上为 ubuntu 20.04.6 LTS (…...
7. k8s二进制集群之Kube ApiServer部署
创建kube工作目录(仅在主节点上创建即可)同样在我们的部署主机上创建apiserver证书请求文件根据证书文件生成apiserver证书仅接着创建TLS所需要的TOKEN创建apiserver服务的配置文件(仅在主节点上创建即可)创建apiserver服务管理配置文件对所有master节点分发证书 & TOK…...
QT笔记——多语言翻译
文章目录 1、概要2、多语言切换2.1、结果展示2.2、创建项目2.2、绘制UI2.2、生成“.st”文件2.4、生成“.qm”文件2.5、工程demo 1、概要 借助QT自带的翻译功能,实现实际应用用进行 “多语言切换” 2、多语言切换 2.1、结果展示 多语言切换 2.2、创建项目 1、文件…...
【2025】camunda API接口介绍以及REST接口使用(3)
前言 在前面的两篇文章我们介绍了Camunda的web端和camunda-modeler的使用。这篇文章主要介绍camunda结合springboot进行使用,以及相关api介绍。 该专栏主要为介绍camunda的学习和使用 🍅【2024】Camunda常用功能基本详细介绍和使用-下(1&…...
js面试some和every的区别
1.基础使用 some和every 都是数组的一个方法let num [1,2,3,4,5,6] let flag1 num.some((item,index,array)> item > 2)let flag2 num.every((item,index, array)> item > 2)1.some 遍历判断中是符合条件的值 一旦找到则不会继续迭代下去 直接返回 2.every 遍历…...
Vue 中如何嵌入可浮动的第三方网页窗口(附Demo)
目录 前言1. 思路Demo2. 实战Demo 前言 🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF 1. 思路Demo 以下Demo提供思路参考,需要结合实际自身应用代码 下述URL的链接使用百度替代! 方式 1…...
【大数据技术】词频统计样例(hadoop+mapreduce+yarn)
词频统计(hadoop+mapreduce+yarn) 搭建完全分布式高可用大数据集群(VMware+CentOS+FinalShell) 搭建完全分布式高可用大数据集群(Hadoop+MapReduce+Yarn) 在阅读本文前,请确保已经阅读过以上两篇文章,成功搭建了Hadoop+MapReduce+Yarn的大数据集群环境。 写在前面 Wo…...
java进阶知识点
java回收机制 浅谈java中的反射 依赖注入的简单理解 通过接口的引用和构造方法的表达,将一些事情整好了反过来传给需要用到的地方~ 这样做得好处:做到了单一职责,并且提高了复用性,解耦了之后,任你如何实现…...
深度学习系列--02.损失函数
一.定义 损失函数(Loss Function)是机器学习和深度学习中用于衡量模型预测结果与真实标签之间差异的函数,它在模型训练和评估过程中起着至关重要的作用 二.作用 1.指导模型训练 提供优化方向:在训练模型时,我们的目…...
构建一个数据分析Agent:提升分析效率的实践
在上一篇文章中,我们讨论了如何构建一个智能客服Agent。今天,我想分享另一个实际项目:如何构建一个数据分析Agent。这个项目源于我们一个金融客户的真实需求 - 提升数据分析效率,加快决策速度。 从分析师的痛点说起 记得和分析师团队交流时的场景: 小张ÿ…...
在K8S中,如何把某个worker节点设置为不可调度?
在Kubernetes中,如果你想要把一个worker节点设置为不可调度,意味着你不想让Kubernetes调度器在这个节点上调度新的Pod。这通常用于维护或升级节点,或者当节点遇到硬件故障或性能问题时,要将某个worker节点设置为不可调度。 方法1…...
硬件电路基础
目录 1. 电学基础 1.1 原子 1.2 电压 1.3 电流 1.电流方向: 正极->负极,正电荷定向移动方向为电流方向,与电子定向移动方向相反。 2.电荷(这里表示负电荷)运动方向: 与电流方向相反 1.4 测电压的时候 2. 地线…...
5 前端系统开发:Vue2、Vue3框架(上):Vue入门式开发和Ajax技术
文章目录 前言一、Vue框架(简化DOM操作的一个前端框架):基础入门1 Vue基本概念2 快速入门:创建Vue实例,初始化渲染(1)创建一个入门Vue实例(2)插值表达式:{{表…...
阿里 Java 岗个人面经分享(技术三面 + 技术 HR 面):Java 基础 +Spring+JVM+ 并发编程 + 算法 + 缓存
技术一面 20 分钟 1、自我介绍 说了很多遍了,很流畅捡重点介绍完。 2、问我数据结构算法好不好 挺好的(其实心还是有点虚,不过最近刷了很多题也只能壮着胆子充胖子了) 3、找到单链表的三等分点,如果单链表是有环的…...
vue2-给data动态添加属性
vue2-给data动态添加属性 1. 问题的来源 在VUe2中(VUE3中使用了proxy,及时动态添加也能实现响应式),如果我们动态给data添加一个属性,会发现视图没有同步更新举个例子我们通过v-for遍历data中的一个属性list…...
Linux 文件和目录
Linux 文件和目录 文章目录 Linux 文件和目录Linux 目录Linux 目录配置的依据 --FHS目录树文件属性文件的分类一般权限 UGO特殊权限 suid\sgid\sticky隐藏属性 ATTR文件访问控制列表 ACL文件相关的命令权限的修改 chmod chown chgrp umaskchmodchgrpumask相关文档 /etc/profile…...
【大数据技术】本机DataGrip远程连接虚拟机MySQL/Hive
本机DataGrip远程连接虚拟机MySQL/Hive datagrip-2024.3.4VMware Workstation Pro 16CentOS-Stream-10-latest-x86_64-dvd1.iso写在前面 本文主要介绍如何使用本机的DataGrip连接虚拟机的MySQL数据库和Hive数据库,提高编程效率。 安装DataGrip 请按照以下步骤安装DataGrip软…...
Leetcode 3440. Reschedule Meetings for Maximum Free Time II
Leetcode 3440. Reschedule Meetings for Maximum Free Time II 1. 解题思路2. 代码实现 题目链接:3440. Reschedule Meetings for Maximum Free Time II 1. 解题思路 这一题某种意义上来说甚至是上一题Leetcode 3439的简化版本(关于这一题的解答可以…...
专门记录台式电脑常见问题
1、蓝屏死机,检查内存硬盘和cpu 2、拆内存条,用橡皮擦金手指 3、放主板静电,扣主板电池 4、系统时间不正确,主板电池没电 5、开机键坏了 6、电脑主机的风扇转,正常通电运行,但显示器没信号。看键盘的num键&…...
[操作系统] 进程终止
在计算机操作系统中,进程(Process)是程序在运行中的实例,而进程的生命周期始于创建,终于终止。进程终止不仅仅意味着程序执行结束,还涉及资源的回收、状态的传递、以及可能的错误处理。在 Linux 和 Unix 系…...
终极指南:Autoenv如何彻底解决团队开发环境配置难题
终极指南:Autoenv如何彻底解决团队开发环境配置难题 【免费下载链接】autoenv 项目地址: https://gitcode.com/gh_mirrors/aut/autoenv Autoenv是一款强大的目录环境管理工具,能够在您进入包含.env文件的目录时自动执行其中的环境配置࿰…...
如何轻松实现专业音频低延迟:FlexASIO实用配置完全指南
如何轻松实现专业音频低延迟:FlexASIO实用配置完全指南 【免费下载链接】FlexASIO A flexible universal ASIO driver that uses the PortAudio sound I/O library. Supports WASAPI (shared and exclusive), KS, DirectSound and MME. 项目地址: https://gitcode…...
Debian 12上彻底卸载TigerVNC的5个隐藏步骤(附残留文件清理技巧)
Debian 12上彻底卸载TigerVNC的5个隐藏步骤(附残留文件清理技巧) 作为Linux系统管理员,你是否遇到过TigerVNC卸载后仍然出现端口占用或配置冲突的情况?常规的apt remove往往无法彻底清除所有痕迹。本文将揭示那些鲜为人知的清理技…...
突破性AI音乐创作革新:腾讯SongGeneration开源项目全解析
突破性AI音乐创作革新:腾讯SongGeneration开源项目全解析 【免费下载链接】SongGeneration 腾讯开源SongGeneration项目,基于LeVo架构实现高品质AI歌曲生成。它采用混合音轨与双轨并行建模技术,既能融合人声与伴奏达到和谐统一,也…...
5大突破:抖音音乐批量下载与智能管理解决方案
5大突破:抖音音乐批量下载与智能管理解决方案 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 在数字内容创作与音乐收藏领域,高效获取和管理抖音平台的音频资源一直是用户面临的核心挑…...
AI训练神器!免配置YOLO可视化工具,标注+训练+推理全流程集成,支持YOLOv8~v12+50系显卡,开源可二开
AI训练神器!免配置YOLO可视化工具,标注训练推理全流程集成,支持YOLOv8~v1250系显卡,开源可二开 yolo可视化训练工具,免配置环境,打开界面即可训练yolo模型,提供源代码及完整打包项目,…...
开源工具Cats Blender插件:模型导入效率提升全攻略
开源工具Cats Blender插件:模型导入效率提升全攻略 【免费下载链接】cats-blender-plugin :smiley_cat: A tool designed to shorten steps needed to import and optimize models into VRChat. Compatible models are: MMD, XNALara, Mixamo, DAZ/Poser, Blender R…...
YOLOv11涨点改进| TPAMI 2026 |全网创新首发、注意力改进篇|引入ASSA自适应稀疏自注意力,顶刊万能涨点模块,含5种超强创新,适合目标检测,图像分割,图像分类,图像超分等任务高效涨点
一、本文介绍 🔥本文给大家介绍利用将 ASSA自适应稀疏自注意力模块改进 YOLOv11网络模型,可以显著提升模型的特征建模能力和复杂场景下的检测性能。ASSA通过自注意力机制在全局范围内建立不同空间位置之间的依赖关系,使网络能够充分利用全局上下文信息,从而增强特征表达能…...
实战指南:如何用FAISS和GPT-4o-mini构建高效RAG系统(附开源代码)
实战指南:如何用FAISS和GPT-4o-mini构建高效RAG系统(附开源代码) 在人工智能领域,检索增强生成(RAG)技术正迅速成为连接大型语言模型与专业知识的桥梁。不同于传统LLM仅依赖预训练知识,RAG系统通…...
GME-Qwen2-VL-2B实战:手把手教你构建个人多模态知识库
GME-Qwen2-VL-2B实战:手把手教你构建个人多模态知识库 1. 为什么需要多模态知识库? 在日常工作和生活中,我们积累了大量不同类型的数据——文档、图片、截图、笔记等。传统知识管理工具往往只能处理单一类型的数据,要么是纯文本…...
