宝塔PHP8.1安装fileinfo拓展失败解决办法

在宝塔面板中安装PHP8.1后,安装fileinfo扩展一直安装不上,查看日志有报错,于是手动来安装也报错。

在这里插入图片描述
宝塔报错:
在这里插入图片描述
手动命令行编译安装同,也有报错

cd /www/server/php/81/src/ext/fileinfo/
make distclean
./configure --with-php-config=/www/server/php/81/bin/php-configmake && make install
echo "extension=/www/server/php/81/lib/php/extensions/no-debug-non-zts-20210902/fileinfo.so" >> /www/server/php/81/etc/php.ini
echo "extension=/www/server/php/81/lib/php/extensions/no-debug-non-zts-20210902/fileinfo.so" >> /www/server/php/81/etc/php-cli.ini

在这里插入图片描述
注意查看错误,既然网上已经找不到解决办法了,但问题还要解决呀,就详细看了这个错误信息。 这里的附注让使用 -std=c99 或 -std=gnu99 来编译代码,看的我也是一脸懵,这我要加在哪里呀? 于是我就加在了make后面

make -std=c99

修改文件 /www/server/php/81/src/ext/fileinfo/Makefile文件,25行左右。CFLAGS = -g -O2,改成CFLAGS = -std=c99 -g -O2
在这里插入图片描述
在这里插入图片描述
重新make,这个时候之前的报错不见了,又有了新的报错(这不重要),然后又改了点别的(这也不重要) 发现还是那个错误,想着是不是有缓存呀,恍惚记得有个命令是这样的:

make clean

然后重新make,这时"意外"居然发生了,第二个错误不见了(所以说它不重要)直接编译通过。然后再执行make install安装成功 后续使用也没有遇到其他问题。

叨叨了这么多,总结一下就是遇到这个问题,这样解决

先执行 make clean 清除缓存
然后修改 Makefile 中的 CFLAGS 添加 -std=c99
然后重新make && make install 就可以了

make && make install

但是还是报另外的错误。

/tmp/php-8.1.10/ext/fileinfo/libmagic/softmagic.c:507:7: error: expected identifier or ‘(’ before ‘__extension__’char *strndup(const char *, size_t);^/tmp/php-8.1.10/ext/fileinfo/libmagic/softmagic.c:510:1: error: expected identifier or ‘(’ before ‘__extension__’

strndup(const char *str, size_t n)

注意:上边执行并没有好,正确如下

先执行 make clean 清除缓存

/usr/local/php8/bin/phpize

./configure --with-php-config=/usr/local/php8/bin/php-config

然后修改 Makefile 中的 CFLAGS 添加 CFLAGS = -std=c99 -g ,去掉-02
在这里插入图片描述

然后重新make && make install 就可以了
最后成功了。
在这里插入图片描述
最后php.info配置文件开启fileinfo,重启php
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/56291.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MongoDB初学者入门教学:与MySQL的对比理解

🏝️ 博主介绍 大家好,我是一个搬砖的农民工,很高兴认识大家 😊 ~ 👨‍🎓 个人介绍:本人是一名后端Java开发工程师,坐标北京 ~ 🎉 感谢关注 📖 一起学习 &…

Oracle 数据库中游标的入门到精通

一、游标入门知识 (一)游标是什么 在 Oracle 数据库中,游标是一种处理结果集的机制。当执行一个查询语句后,结果集可能包含多行数据。游标就像是一个指向这些数据行的指针,允许我们逐行对数据进行操作和处理&#xf…

020 elasticsearch7.10.2 elasticsearch-head kibana安装

文章目录 全文检索流程ElasticSearch介绍ElasticSearch应用场景elasticsearch安装允许远程访问设置vm.max_map_count 的值 elasticsearch-head允许跨域 kibana 商品数量超千万,数据库无法使用索引 如何使用全文检索: 使用lucene,在java中唯一…

MySQL 的数据类型

1.整数类型 1.1 tinyint tinyint 为小整数类型,存储空间为1个字节(8位),有符号范围-128 ~ 127,无符号范围 0 ~ 255,此类型通常在数据库中表示类型的字段,如某一字段 type 表示学科,其中 “type1” 表示语文…

什么是芯片正向设计和芯片反向设计?

什么是芯片反向设计?反向设计其实就是芯片反向设计,它是通过对芯片内部电路的提取与分析、整理,实现对芯片技术原理、设计思路、工艺制造、结构机制等方面的深入洞悉,可用来验证设计框架或者分析信息流在技术上的问题,…

C++学习,标准库 <functional>

C 标准库 <functional> 头文件提供了一组函数模板&#xff0c;这些模板允许使用函数对象&#xff08;function objects&#xff09;作为参数传递给算法&#xff0c;或者作为算法的返回值。函数对象是那些重载了 operator() 的对象&#xff0c;它们可以像普通函数一样被调…

004、合并两个有序数组

0、题目描述 合并两个有序数组 1、法1 数组nums1有m个元素&#xff0c; 直接在下标为m的位置处追加nums2的元素。然后再qsort整体排序。 —— —— qsort函数&#xff0c;&#xff08;数组首元素地址&#xff0c;排序的个数&#xff0c;排序元素大小&#xff0c; 比较函数&…

要创建一个带有vue的uniAPP需要具备什么资质

要创建一个带有Vue的UniApp&#xff0c;主要需要的是技术能力和相关开发经验&#xff0c;而非特定的资质证书。不过&#xff0c;从一般性的角度来看&#xff0c;以下是创建此类应用时可能需要考虑的一些方面&#xff1a; 一、技术能力 Vue.js基础&#xff1a; 熟悉Vue.js的语法…

从零实现高并发内存池

目录 1. 项目介绍1.1 这个项目具体功能是什么&#xff1f;1.2 本项目的知识储备 2. 什么是内存池2.1 池化技术2.2 内存池主要解决的问题2.3 malloc 3. 定长内存池设计4. 高并发内存池整体框架设计4.1 Thread Cache的设计思路4.2 Central Cache的设计思路4.3 Page Cache的设计思…

Vue工程化结构环境安装及搭建教程 : 之nvm

vue需要的环境&#xff1a; node.js : Node.js和Vue.js通常会一起使用。Node.js作为后端服务器&#xff0c;处理服务器端的逻辑和数据访问&#xff0c;而Vue.js则负责前端用户界面的构建和交互。通过Ajax通信&#xff0c;Vue.js应用程序向Node.js服务器发送请求&#xff0c;并…

【知识科普】单元测试框架TestNG介绍

文章目录 TestNG概述常用注解说明springboot项目集成比较完整的示例步骤 1: 创建被测试的类步骤 2: 编写TestNG测试用例步骤 3: 运行测试步骤 4: 查看测试报告 TestNG概述 TestNG是一个开源的自动化测试框架&#xff0c;它在JUnit和NUnit的基础上增加了很多强大的功能&#xf…

模电板测试分析报告【运放直流偏置电路】

测试方法&#xff1a;输入一个1K正弦波,调节R80观看是否进行偏置调节。 需要接正负电源。 按照这个计算公式&#xff0c;信号在第二极被放大了11倍。 这么看的话第一级也被放大了10倍&#xff1a; R79是用来调节增益的&#xff0c;R80是用来调节偏置的&#xff1a; 芯片介绍&a…

大学生入学审核系统(论文+源码)_kaic

摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了大学生入学审核系统的开发全过程。通过分析大学生入学审核系统管理的不足&#xff0c;创建了一个计算机管理大学生入学审核系统的方案。文章介绍了大学生入学审核…

【C语言】你不知道的知识小盲区——柔性数组

文章目录 一、什么是柔性数组二、柔性数组的特点三、柔性数组的使用四、柔性数组的优势 一、什么是柔性数组 也许你从来没有听说过柔性数组&#xff08;flexible array&#xff09;这个概念&#xff0c;但是它确实是存在的。在C99标准中&#xff0c;如果结构体的最后一个成员是…

Spring Integration + MQTT

1. 简介 Spring Integration&#xff1a; Spring Integration是一个开源的Java库&#xff0c;用于构建基于消息的应用程序。它提供了一套丰富的组件和工具&#xff0c;使得开发者可以轻松地开发出可靠、灵活和可扩展的集成解决方案。以下是Spring Integration的一些主要用途&…

电话聊天狂人

给定大量手机用户通话记录&#xff0c;找出其中通话次数最多的聊天狂人。 输入格式: 输入首先给出正整数N&#xff08;≤105&#xff09;&#xff0c;为通话记录条数。随后N行&#xff0c;每行给出一条通话记录。简单起见&#xff0c;这里只列出拨出方和接收方的11位数字构成…

jenkins 插件Publish Over SSH

一、安装插件 二、配置sshserver http://192.168.31.156:8080/manage/configure 三、添加自由风格&#xff1a;PublishOverSSHDemo 我们将工作目录&#xff1a;/var/lib/jenkins/workspace/PublishOverSSHDemo下的图片m3.jpeg 同步到目标143服务器目录&#xff1a;/root/imag…

Python脚本爬取目标网站上的所有链接

一、爬取后txt文件保存 需要先pip install requests和BeautifulSoup库 import requests from bs4 import BeautifulSoup# 定义要爬取的新闻网站URL url https://www.chinadaily.com.cn/ # China Daily 网站# 发送请求获取页面内容 response requests.get(url)# 检查请求是否…

Jgit的使用

Jgit的使用 文章目录 Jgit的使用一&#xff0c;git操作的对应代码1.1 查看操作1.1.1 打开仓库1.1.3 获取状态信息 1.2 添加操作1.2.1 初始化本地仓库1.2.2 创建一个新文件并写入内容1.2.3 添加指定&#xff08;所有&#xff09;文件到暂存区1.2.4 提交操作1.2.5 连接并推送到远…

Android中的三种数据存储方式

目录 1.文件存储 1&#xff09;内部存储 1--MODE_PRIVATE: 2--MODE_APPEND: 3--MODE_WORLD_READABLE: 4--MODE_WORLD_WRITEABLE: 5--简单使用 3&#xff09;外部存储 4&#xff09;内部读取 4&#xff09;外部读取 2.SharePreferences存储 1&#xff09;基本概念 2&#xff09…