51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

php8安装fileinfo扩展

当前使用Centos7.x系统,php使用8.0版本,wlnmp一键包已支持该扩展

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

1、安装所需依赖,如果在编译时还提示缺少其他依赖,请自行安装
yum install autoconf gcc gcc-c++ wget

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

|-------|---------------------------------------------------------------------------------------------------------------| | 1 2 3 | 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

|-----|------------------------------------------------------------------| | 1 2 | ./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

|-----|----------------------------------------------------------------------------------------------------------------------------------| | 1 2 | 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

|---|--------------------------| | 1 | CFLAGS = -std=c99 -g -O2 |

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

|-------|------------------------------| | 1 2 3 | 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

|-----|------------------------------------------------------------------------------------------------------| | 1 2 | 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文件中改成以下内容
CFLAGS = -std=c99 -g

|---|----------------------| | 1 | CFLAGS = -std=c99 -g |

赞(0)
未经允许不得转载:工具盒子 » php8安装fileinfo扩展