php8安装fileinfo扩展

在CentOS7.x系统上使用PHP8.0时,需要安装依赖并手动编译扩展。文章详细介绍了如何安装autoconf,下载PHP8.0安装包,以及处理编译过程中遇到的C99模式问题。通过修改Makefile文件,设置CFLAGS参数,然后进行make和makeinstall步骤,最后配置php.ini以启用fileinfo扩展,并验证其是否生效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当前使用Centos7.x系统,php使用8.0版本

注:CentOS6.x的话需要升级autoconf版本

1、安装所需依赖,如果在编译时还提示缺少其他依赖,请自行安装

yum install autoconf gcc gcc-c++ wget

2、下载php8安装包

​
wget https://www.php.net/distributions/php-8.0.18.tar.gz
cd php-8.0.18/ext/fileinfo
/usr/local/php/bin/phpize

根据自己phpize的位置来运行即可(不知道phpize在哪的直接find / -name phpize查找),运行完提示下面信息,然后编译

Configuring for:
PHP Api Version: 20200930
Zend Module Api No: 20200930
Zend Extension Api No: 420200930

3、编译扩展模块

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

make

如果此时执行make,那么会看到以下报错

error: ‘for’ loop initial declarations are only allowed in C99 mode
note: use option -std=c99 or -std=gnu99 to compile your code

其实此处已给出解决办法,使用-std=c99或-std=gnu99来编译(这两个参数用哪个都可以)

解决办法:

修改Makefile文件

在第25行

将CFLAGS = -g -O2修改为以下内容

CFLAGS = -std=c99 -g -O2

保存退出,执行以下编译命令

make clean
make
make install

执行完成后会显示扩展模块编译到的目录

/usr/local/php/lib/php/extensions/no-debug-non-zts-20200930/

4、修改php.ini添加扩展

extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20200930/"
extension=fileinfo.so

注意:如果之前配置过extension_dir路径了,则只需要配置extension=fileinfo.so即可

保存退出,重启php

通过php -m | grep fileinfo命令可看到,扩展已生效

附:如果是php8.1版本的话,需要在Makefile文件中改成以下内容,适用PHP8.1的所有扩展安装

CFLAGS = -std=c99 -g

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值