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

简介: 在宝塔面板安装PHP8.1后,fileinfo扩展安装失败,手动尝试也报错。通过分析错误信息,在Makefile中修改CFLAGS添加`-std=c99`,并执行`make clean`清除缓存后,重新编译安装成功。最后在php.ini中启用fileinfo扩展并重启PHP服务。注意需调整CFLAGS为`-std=c99 -g`,去掉`-O2`。

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

宝塔报错:
image.png

手动命令行编译安装同,也有报错

cd /www/server/php/81/src/ext/fileinfo/
make distclean
./configure --with-php-config=/www/server/php/81/bin/php-config

make && 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

image.png
注意查看错误,既然网上已经找不到解决办法了,但问题还要解决呀,就详细看了这个错误信息。 这里的附注让使用 -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

image.png

重新make,这个时候之前的报错不见了,又有了新的报错(这不重要),然后又改了点别的(这也不重要) 发现还是那个错误,想着是不是有缓存呀,恍惚记得有个命令是这样的:

make clean

image.png

然后重新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
image.png

然后重新make && make install 就可以了
最后成功了。

最后php.info配置文件开启fileinfo,重启php

目录
相关文章
|
1月前
|
Java 程序员 PHP
01 入门PHP就来我这-安装phpstudy
路老师的PHP入门教程,带你从零开始学习PHP。首先下载并安装phpStudy,接着配置域名和端口,最后创建并运行第一个PHP文件。内容详实,适合初学者。
43 3
01 入门PHP就来我这-安装phpstudy
|
2月前
|
NoSQL MongoDB PHP
PHP7 MongDB 安装与使用
10月更文挑战第19天
38 1
PHP7 MongDB 安装与使用
|
2月前
|
tengine 应用服务中间件 Linux
Tengine、Nginx安装PHP命令教程
要在阿里云Linux上安装PHP,请先更新YUM源并启用PHP 8.0仓库,然后安装PHP及相关扩展。通过`php -v`命令验证安装成功后,需修改Nginx配置文件以支持PHP,并重启服务。最后,创建`phpinfo.php`文件测试安装是否成功。对于CentOS系统,还需安装EPEL源和Remi仓库,其余步骤类似。完成上述操作后,可通过浏览器访问`http://IP地址/phpinfo.php`测试安装结果。
|
2月前
|
测试技术 PHP 开发工具
php性能监测模块XHProf安装与测试
【10月更文挑战第13天】php性能监测模块XHProf安装与测试
33 0
|
3月前
|
PHP Windows
thinkPhP6.0安装教程图解--PHP框架安装
本文是一篇关于ThinkPHP 6.0安装教程的图解,包括环境检查、安装Composer、修改Composer镜像地址、安装ThinkPHP框架以及启动运行ThinkPHP的步骤。文章详细描述了每个步骤的操作方法,并提供了相应的命令和截图,帮助用户理解并顺利完成ThinkPHP 6.0的安装和运行。
thinkPhP6.0安装教程图解--PHP框架安装
PHP7.3中fileinfo怎么安装与开启
安装lumen时创建项目时报错,需开启fileinfo
616 0
PHP7.3中fileinfo怎么安装与开启
|
27天前
|
前端开发 关系型数据库 MySQL
PHP与MySQL动态网站开发实战指南####
【10月更文挑战第21天】 本文将深入浅出地探讨如何使用PHP与MySQL构建一个动态网站,从环境搭建到项目部署,全程实战演示。无论你是编程新手还是希望巩固Web开发技能的老手,都能在这篇文章中找到实用的技巧和启发。我们将一起探索如何通过PHP处理用户请求,利用MySQL存储数据,并最终呈现动态内容给用户,打造属于自己的在线平台。 ####
37 0
|
18天前
|
存储 关系型数据库 MySQL
PHP与MySQL动态网站开发:从基础到实践####
本文将深入探讨PHP与MySQL的结合使用,展示如何构建一个动态网站。通过一系列实例和代码片段,我们将逐步了解数据库连接、数据操作、用户输入处理及安全防护等关键技术点。无论您是初学者还是有经验的开发者,都能从中获益匪浅。 ####
|
21天前
|
安全 关系型数据库 MySQL
PHP与MySQL动态网站开发实战指南####
——深入探索LAMP栈下的高效数据交互与处理技巧 ####
|
19天前
|
关系型数据库 MySQL PHP
php实现一个简单的MySQL分页
通过本文的详细步骤和代码示例,我们实现了一个简单的PHP MySQL分页功能。主要步骤包括计算总记录数、设置分页参数、查询当前页的数据以及生成分页链接。这种分页方式适用于大多数Web应用,能够有效提升用户体验和页面响应速度。
22 4