centos上PHP8安装fileinfo

报错

/oneinstack/src/php-8.0.27/ext/fileinfo/libmagic/funcs.c:97:2: error: for’ loop initial declar

ations are only allowed in C99 mode

for (const char *p = fmt; *p; p++) {

^

/oneinstack/src/php-8.0.27/ext/fileinfo/libmagic/funcs.c:97:2: note: use option -std=c99 or -st

d=gnu99 to compile your code

make: *** [libmagic/funcs.lo] Error 1

进入 oneinstack/src/

找到php目录

find / -name fileinfo

cd fileinfo

root@localhost fileinfo]# vim Makefile 修改makefile

20  libdir = ${exec_prefix}/lib
21  prefix = /usr/local/php8
22  phplibdir = /usr/local/src/php-8.0.0/ext/fileinfo/modules
23  phpincludedir = /usr/local/php8/include/php
24  CC = cc
25  CFLAGS = -g -O2
26  CFLAGS_CLEAN = $(CFLAGS)
27  CPP = cc -E
28  CPPFLAGS = -DHAVE_CONFIG_H
29  CXX =
30  CXXFLAGS =
在第25行(不同环境的行数可能不一样,注意区分)上添加-std=c99,也就是

20  libdir = ${exec_prefix}/lib
21  prefix = /usr/local/php8
22  phplibdir = /usr/local/src/php-8.0.0/ext/fileinfo/modules
23  phpincludedir = /usr/local/php8/include/php
24  CC = cc
25  CFLAGS = -std=c99 -g -O2
26  CFLAGS_CLEAN = $(CFLAGS)
27  CPP = cc -E
28  CPPFLAGS = -DHAVE_CONFIG_H
29  CXX =
30  CXXFLAGS =

make

make install

安装成功

[root@localhost fileinfo]# make install
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20200930/

### 如何在 PHP安装 fileinfo 扩展 为了使 Intervention Image 库正常工作,必须安装并启用 PHPFileinfo 扩展[^1]。以下是针对不同操作系统和环境的具体方法。 #### 对于基于 Debian/Ubuntu 的 Linux 发行版: 可以通过包管理器来轻松安装此扩展。运行以下命令可以完成安装过程: ```bash sudo apt-get update sudo apt-get install php-fileinfo ``` 对于特定版本的 PHP(例如 PHP 7.4),应使用相应的软件包名称: ```bash sudo apt-get install php7.4-fileinfo ``` #### 对于基于 RedHat/CentOS/Fedora 的 Linux 发行版: 同样地,在这些平台上也可以通过 yum 或 dnf 来获取所需的文件信息支持库: ```bash sudo yum install php-pecl-fileinfo # CentOS/RHEL 6, 7 使用yum # 或者 sudo dnf install php-pecl-fileinfo # Fedora 和较新的CentOS/RHEL 版本使用dnf ``` 有时可能会遇到一些问题,比如找不到合适的仓库或者依赖关系无法解决等问题,则可能需要手动编译安装模块[^3]。 #### Windows 平台上的操作指南: Windows 用户通常只需要编辑 `php.ini` 文件并将下面这行前面的分号去掉即可激活内置的支持: ```ini ;extension=php_fileinfo.dll ``` 修改完成后重启 Web 服务器服务让更改生效。 #### macOS 上的操作方式: Homebrew 是 Mac OS X 下非常流行的开源工具集,它可以帮助简化开发人员的工作流程。要在此类环境中添加对 FileInfo API 的访问权限,请执行下列指令: ```bash brew reinstall php --with-php-config ``` 注意:以上命令假设已经正确设置了 Homebrew 及其关联的 PHP 软件包;如果不是这种情况,请先按照官方文档说明进行必要的初始化设置。 #### OneinStack 环境下的特殊处理: 当在一个由 OneinStack 构建的服务集群里部署应用程序时,除了上述常规手段外还需要额外关注某些细节配置项。特别是涉及到多版本 PHP 共存的情况下更应该小心谨慎对待每一个环节[^2]。 #### 验证安装成功与否: 无论采用哪种途径来进行这项工作的实施之后都建议立即验证新功能是否可用。最简单的方法就是创建一个新的 PHP 测试页面包含如下代码片段: ```php <?php echo function_exists('finfo_open') ? 'Fileinfo enabled' : 'Fileinfo not available'; ?> ``` 如果浏览器返回字符串 "Fileinfo enabled" 则表示一切顺利!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小关@

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

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

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

打赏作者

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

抵扣说明:

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

余额充值