当前位置: 首页 > news >正文

linux 安装php8.1 ZipArchive和libzip最新版扩展安装

1、概述

安装前咱们先看下我本地环境

[root@elk php8]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.9 (Maipo)
[root@elk php8]#
[root@elk php8]# ./bin/php -v
PHP 8.1.18 (cli) (built: Apr 17 2023 13:15:17) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.18, Copyright (c) Zend Technologies
[root@elk php8]#

为了避免重复安装,记得先通过 “./bin/php -m ”  确认是否已安装此扩展。

[root@elk php8]# ./bin/php -m
[PHP Modules]
bcmath
calendar
...
...
...

安装这两个扩展的先后顺序:

①、安装zip(ZipArchive),需要先安装libzip扩展
②、安装libzip,需要先安装cmake

下面我就cmake、libzip、zip的先后顺序安装。

2、安装cmake

在安装cmake之前先确认是否已安装,防止重复安装,命令:“cmake --version”

[root@elk wp]# cmake --version
bash: cmake: 未找到命令...
相似命令是: 'make'
[root@elk wp]#

官网地址:CMake

 

下载命令:“wget  https://github.com/Kitware/CMake/releases/download/v3.26.3/cmake-3.26.3.tar.gz” 

[root@elk wp]# ll cmake-3.26.3.tar.gz
-rw-r--r-- 1 root root 10668855 4月  22 19:44 cmake-3.26.3.tar.gz
# 解压
[root@elk wp]# tar -zxvf cmake-3.26.3.tar.gz# 进入解压目录
[root@elk wp]# cd cmake-3.26.3/# 1、执行bootstrap命令
[root@elk cmake-3.26.3]# ./bootstrap
-- Checking for curses support
-- Checking for curses support - Failed
-- Looking for a Fortran compiler
-- Looking for a Fortran compiler - /usr/bin/f95
-- Performing Test run_pic_test
-- Performing Test run_pic_test - Success
-- Performing Test run_inlines_hidden_test
-- Performing Test run_inlines_hidden_test - Success
-- Configuring done (50.0s)
-- Generating done (1.2s)
-- Build files have been written to: /u01/tool/wp/cmake-3.26.3
---------------------------------------------
CMake has bootstrapped.  Now run gmake.# 2、make && make install
-- Installing: /usr/local/share/cmake-3.26/Templates/Windows/StoreLogo.png
-- Installing: /usr/local/share/cmake-3.26/Templates/Windows/Windows_TemporaryKey.pfx
-- Installing: /usr/local/share/vim/vimfiles/indent
-- Installing: /usr/local/share/vim/vimfiles/indent/cmake.vim
-- Installing: /usr/local/share/vim/vimfiles/syntax
-- Installing: /usr/local/share/vim/vimfiles/syntax/cmake.vim
-- Installing: /usr/local/share/emacs/site-lisp/cmake-mode.el
-- Installing: /usr/local/share/aclocal/cmake.m4
-- Installing: /usr/local/share/bash-completion/completions/cmake
-- Installing: /usr/local/share/bash-completion/completions/cpack
-- Installing: /usr/local/share/bash-completion/completions/ctest
[root@elk cmake-3.26.3]#

 检查是否安装成功

[root@elk cmake-3.26.3]# cmake --version
cmake version 3.26.3CMake suite maintained and supported by Kitware (kitware.com/cmake).
[root@elk cmake-3.26.3]#

3、安装libzip

官网:libzip

下载:wget -c https://libzip.org/download/libzip-1.9.2.tar.gz
解压并创建构建目录

[root@elk wp]# tar -zvxf libzip-1.9.2.tar.gz
//进入安装包
[root@elk wp]# cd libzip-1.9.2
//创建build目录
[root@elk wp]# mkdir build && cd build[root@elk build]# cmake -DCMAKE_INSTALL_PREFIX=/usr/lib64
CMake Warning:No source or binary directory provided.  Both will be assumed to be thesame as the current working directory, but note that this warning willbecome a fatal error in future CMake releases.CMake Error: The source directory "/u01/tool/wp/libzip-1.9.2/build" does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.// cmake 上级目录
[root@elk build]# cmake ..
-- Looking for getopt
-- Looking for getopt - found
-- Found Perl: /usr/bin/perl (found version "5.16.3")
-- Configuring done (6.5s)
-- Generating done (0.2s)
-- Build files have been written to: /u01/tool/wp/libzip-1.9.2/build//编译并安装 
[root@elk build]# make && make install
-- Installing: /usr/local/share/man/man3/zip_stat_index.3
-- Installing: /usr/local/bin/zipcmp
-- Set runtime path of "/usr/local/bin/zipcmp" to ""
-- Installing: /usr/local/bin/zipmerge
-- Set runtime path of "/usr/local/bin/zipmerge" to ""
-- Installing: /usr/local/bin/ziptool
-- Set runtime path of "/usr/local/bin/ziptool" to ""

 安装后需要设置环境变量

编辑文件“~/.bashrc” 添加以下环境变量

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib/pkgconfig:/usr/lib64/pkgconfig:/usr/local/lib64/pkgconfig
export PKG_CONFIG_PATH

执行命令使之生效

source ~/.bashrc

检查是否安装成功,如果出现以下结果,则为成功

[root@elk build]# pkg-config --libs libzip
-L/usr/local/lib64 -lzip
[root@elk build]#

4、安装lib

  • 下载安装包:wget https://pecl.php.net/get/zip
  • 解压并进入解压目录
[root@elk wp]# tar -zxvf zip^C
[root@elk wp]#
[root@elk wp]#
[root@elk wp]# cd zip-1.21.1
[root@elk zip-1.21.1]# pwd
/u01/tool/wp/zip-1.21.1
[root@elk zip-1.21.1]# ls
config.m4  config.w32  CREDITS  examples  LICENSE  php5  php7  php73  php74  php8  php81  tests
[root@elk zip-1.21.1]#

解压目录是没有安装文件的,需要通过phpize创建安装文件 

  •  查找phpize 目录
//我这里phpize 目录为  /u01/tool/wp/php8/bin/phpize
[root@elk zip-1.21.1]# find / -name phpize
/u01/tool/wp/php-8.1.18/scripts/phpize
/u01/tool/wp/php8/bin/phpize
  •  创建安装文件
[root@elk zip-1.21.1]# /u01/tool/wp/php8/bin/phpize
Configuring for:
PHP Api Version:         20210902
Zend Module Api No:      20210902
Zend Extension Api No:   420210902
[root@elk zip-1.21.1]# ls
# 可以看出 执行后 有了configure 文件
autom4te.cache  config.h.in  configure     config.w32  examples  php5  php73  php8   run-tests.php
build           config.m4    configure.ac  CREDITS     LICENSE   php7  php74  php81  tests
[root@elk zip-1.21.1]#
  • 查找php-config安装目录
[root@elk zip-1.21.1]# find / -name php-config
/u01/tool/wp/php-8.1.18/scripts/php-config
/u01/tool/wp/php8/bin/php-config
  •  配置
[root@elk zip-1.21.1]# ./configure --with-php-config=/u01/tool/wp/php8/bin/php-config
.....
.....
creating libtool
appending configuration tag "CXX" to libtool
configure: patching config.h.in
configure: creating ./config.status
config.status: creating config.h
  • 编译+安装
[root@elk zip-1.21.1]# make && make install
....
....
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:- add LIBDIR to the `LD_LIBRARY_PATH' environment variableduring execution- add LIBDIR to the `LD_RUN_PATH' environment variableduring linking- use the `-Wl,--rpath -Wl,LIBDIR' linker flag- have your system administrator add LIBDIR to `/etc/ld.so.conf'See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------Build complete.
Don't forget to run 'make test'.Installing shared extensions:     /u01/tool/wp/php8/lib/php/extensions/no-debug-non-zts-20210902/
  •  查看是否有zip.so文件

我们本地so文件地址:

[root@elk zip-1.21.1]# find / -name zip.so
/u01/tool/wp/php8/lib/php/extensions/no-debug-non-zts-20210902/zip.so
/u01/tool/wp/zip-1.21.1/modules/zip.so
/u01/tool/wp/zip-1.21.1/.libs/zip.so
[root@elk zip-1.21.1]#
  • 更改php.ini

在最后添加

extension=zip.so

修改

zlib.output_compression = Off

改为

zlib.output_compression = On 

  • 建立软连接
[root@elk daemon]# ln -s /u01/tool/wp/php8/lib/php/extensions/no-debug-non-zts-20210902/zip.so /usr/lib64/zip.so  && ldconfig
[root@elk daemon]#
[root@elk daemon]#
[root@elk daemon]# ln -s /u01/tool/wp/php8/lib/php/extensions/no-debug-non-zts-20210902/zip.so /usr/lib/zip.so  && ldconfig
[root@elk daemon]#
[root@elk daemon]#
[root@elk daemon]# ldconfig /usr/local/lib64
[root@elk daemon]#
[root@elk daemon]# ldconfig /usr/local/lib
  • 重启php

启动报错,解决中.....

[root@elk daemon]# ./php-fpm start
Starting php-fpm [22-Apr-2023 21:34:57] NOTICE: PHP message: PHP Warning:  PHP Startup: Unable to load dynamic library 'zip.so' (tried: /u01/tool/wp/php8/lib/php/extensions/no-debug-non-zts-20210902/zip.so (libzip.so.5: cannot open shared object file: No such file or directory), /u01/tool/wp/php8/lib/php/extensions/no-debug-non-zts-20210902/zip.so.so (/u01/tool/wp/php8/lib/php/extensions/no-debug-non-zts-20210902/zip.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
 done 

问题解决:

编辑/etc/ld.so.conf文件把库文件目录加上,关闭php-fpm,然后重启即可

vim /etc/ld.so.conf
include ld.so.conf.d/*.conf  # 默认只有这一行
/usr/lib64
/usr/lib
/usr/local/lib
/usr/local/lib64

5、检查扩展是否安装成功

通过“php -m” (在php安装目录的bin目录中)检查扩展是否安装成功

 

相关文章:

linux 安装php8.1 ZipArchive和libzip最新版扩展安装

1、概述 安装前咱们先看下我本地环境 [rootelk php8]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.9 (Maipo) [rootelk php8]# [rootelk php8]# ./bin/php -v PHP 8.1.18 (cli) (built: Apr 17 2023 13:15:17) (NTS) Copyright (c) The PHP Group Z…...

大数据 | 实验一:大数据系统基本实验 | 熟悉常用的HBase操作

文章目录 📚HBase安装🐇安装HBase🐇伪分布式模式配置🐇测试运行HBase🐇HBase java API编程环境配置 📚实验目的📚实验平台📚实验内容🐇HBase Shell 编程命令实现以下指定…...

Linux command(split)

原理 在split.c中,首先处理传递给split命令的参数,包括需要拆分的文件、拆分大小/行数等选项。然后,通过调用open()函数打开需要拆分的文件,并获取文件信息。接着根据选项计算每个拆分文件的大小/行数,并根据需要创建输…...

开放式耳机好用吗,盘点几款口碑不错的开放式耳机

​开放式耳机作为一种全新的耳机形态,已经成为了当前市场上非常火爆的一款产品。由于无需入耳佩戴,可以很好的避免了耳膜受到损伤,而且也能够让我们在佩戴眼镜时也能够正常使用。加上开放式耳机的音质和舒适度都要优于其他类型的耳机&#xf…...

法规标准-ISO 16787标准解读

ISO 16787是做什么的? ISO 16787全称为智能运输系统-辅助泊车系统(APS)-性能要求和测试程序,其中主要描述了对APS系统的功能要求及测试规范 APS类型 根据目标停车位类型将APS系统分为两类: 1)APS类型I&a…...

脑力劳动-英文单词

标题 前言必学场景词汇及用法会议简报电话出差市场调研广告与媒介电脑情境常用单词会议简报电话市场调研广告与媒介电脑前言 加油 必学场景词汇及用法 会议 1meeting [ˈmitɪŋ] n.会议hold / have / call off a meeting举办/取消会议be in a meeting在开会The meeting w…...

机器学习中的三个重要环节:训练、验证、测试

本文重点 模型训练、验证和测试是机器学习中的三个重要环节。这三个环节之间存在着紧密的关系,它们相互作用,共同构建出一个完整的机器学习模型。在本文中,我们将详细介绍模型训练、验证和测试之间的关系。 模型训练、验证和测试之间的关系 模型训练是机器学习中最基本的…...

机器学习实战:Python基于LDA线性判别模型进行分类预测(五)

文章目录 1 前言1.1 线性判别模型的介绍1.2 线性判别模型的应用 2 demo数据演示2.1 导入函数2.2 训练模型2.3 预测模型 3 LDA手写数字数据演示3.1 导入函数3.2 导入数据3.3 输出图像3.4 建立模型3.5 预测模型 4 讨论 1 前言 1.1 线性判别模型的介绍 线性判别模型(…...

Java枚举(Enum)

枚举(enum) enum全称enumeration,JDK 1.5中引入的新特性。在Java中,被enum关键字修饰的类型就是枚举类型 可以将枚举看成一个类,它继承于java.lang.enum类,当定义一个枚举类型时,每一个枚举类型…...

【Python】【进阶篇】二十一、Python爬虫的多线程爬虫

目录 二十一、Python爬虫的多线程爬虫21.1 多线程使用流程21.2 Queue队列模型21.3 多线程爬虫案例1) 案例分析​2) 完整程序 二十一、Python爬虫的多线程爬虫 网络爬虫程序是一种 IO 密集型程序,程序中涉及了很多网络 和 本地磁盘的 IO 操作,这会消耗大…...

Python从入门到精通14天(eval、literal_eval、exec函数的使用)

eval、literal_eval、exec函数的使用 eval函数literal_eval函数exec函数三者的区别 eval函数 eval()是Python中的内置函数,它可以将一个字符串作为参数,并将该字符串作为Python代码执行。它的语法格式为:eval(expression,globalsNone,locals…...

队列的基本操作(C语言链表实现)初始化,入队,出队,销毁,读取数据

文章目录 前言一、队列基本变量的了解二、队列的基本操作2.1队列的初始化(QueueInit)2.2入队(QueuePush)2.3判断是否为空队(QueueEmpty)2.4出队(QueuePop)2.5队列的队头数据&#xf…...

项目支付接入支付宝【沙箱环境】

前言 订单支付接入支付宝,使用支付宝提供的沙箱机制模拟为订单付款。我这里主要记录一下沙箱环境如何接入到系统中,具体细节的实现。按照官方文档来就可以了。 1、使用步骤 这里有几个重要数据要拿到,一个是支付宝的公钥和私钥&#xff0c…...

程序员应该如何提升自己

作为一名程序员,以下是您可以考虑的一些方法来提高自己的技能和知识: 深入学习编程语言和相关工具:了解您使用的编程语言和相关工具的基本原理和高级特性,以便更好地理解其工作方式并更有效地使用它们。 刻意练习:刻意…...

全球上线!ABB中国涡轮增压器分拆 – 数据清理阶段完成

ABB是数字行业的技术前沿者,拥有四项主营业务:电气化,工业自动化,运动控制以及机器人和离散自动化。ABB总部位于瑞士苏黎世,业务遍及100多个国家,拥有约105,000名员工。2021年,该公司…...

手写简易 Spring(三)

文章目录 三. 手写简易 Spring(三)1. Bean 对象初始化和销毁方法1. XML 添加 init-method 与实现 InitializingBean 接口注册初始化2. XML 添加 destroy-method 与实现 DisposableBean 接口注册销毁3. DefaultSingletonBeanRegistry 优秀的解耦方法 2. 定…...

设计模式-看懂UML类图和时序图

这里不会将UML的各种元素都提到,只讲类图中各个类之间的关系; 能看懂类图中各个类之间的线条、箭头代表什么意思后,也就足够应对 日常的工作和交流; 同时,应该能将类图所表达的含义和最终的代码对应起来; 1…...

2023年全国最新安全员精选真题及答案57

百分百题库提供安全员考试试题、建筑安全员考试预测题、建筑安全员ABC考试真题、安全员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 101.(单选题)遇有()及以上强风、浓雾等…...

数字图像处理基础

图像增强:不论方法,只要能够得到较好的图像即可 图像复原:找到图像退化的原因,把噪声过滤得到较好的图像 RGB——HSI(色调 饱和度 亮度)彩色图像处理需要用到灰度图像处理 直方图均衡,灰度概率密度函数接近均匀分布&a…...

onnx手动操作

使用onnx.helper可以进行onnx的制造组装操作: 对象描述ValueInfoProto 对象张量名、张量的基本数据类型、张量形状算子节点信息 NodeProto算子名称(可选)、算子类型、输入和输出列表(列表元素为数值元素)GraphProto对象用张量节点和算子节点组成的计算图对象ModelP…...

云计算——弹性云计算器(ECS)

弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...

【HTTP三个基础问题】

面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...

2023赣州旅游投资集团

单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...

初探Service服务发现机制

1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源&#xf…...

scikit-learn机器学习

# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...

链式法则中 复合函数的推导路径 多变量“信息传递路径”

非常好,我们将之前关于偏导数链式法则中不能“约掉”偏导符号的问题,统一使用 二重复合函数: z f ( u ( x , y ) , v ( x , y ) ) \boxed{z f(u(x,y),\ v(x,y))} zf(u(x,y), v(x,y))​ 来全面说明。我们会展示其全微分形式(偏导…...

拟合问题处理

在机器学习中,核心任务通常围绕模型训练和性能提升展开,但你提到的 “优化训练数据解决过拟合” 和 “提升泛化性能解决欠拟合” 需要结合更准确的概念进行梳理。以下是对机器学习核心任务的系统复习和修正: 一、机器学习的核心任务框架 机…...

基于谷歌ADK的 智能产品推荐系统(2): 模块功能详解

在我的上一篇博客:基于谷歌ADK的 智能产品推荐系统(1): 功能简介-CSDN博客 中我们介绍了个性化购物 Agent 项目,该项目展示了一个强大的框架,旨在模拟和实现在线购物环境中的智能导购。它不仅仅是一个简单的聊天机器人,更是一个集…...

Spring Boot SQL数据库功能详解

Spring Boot自动配置与数据源管理 数据源自动配置机制 当在Spring Boot项目中添加数据库驱动依赖(如org.postgresql:postgresql)后,应用启动时自动配置系统会尝试创建DataSource实现。开发者只需提供基础连接信息: 数据库URL格…...