首先说一下fileinfo扩展是做什么的。
官方的说法:
本模块中的函数通过在文件的给定位置查找特定的 魔术 字节序列 来猜测文件的内容类型以及编码。 虽然不是百分百的精确, 但是通常情况下能够很好的工作。
大概意思就是讲通过这个扩展,php支持了一些函数用来获取文件的类型和编码,就是获取文件mime信息。
先说说安装过程吧,怎么用先不说。
之前编译安装php的时候因为服务器配置比较低,就没开启fileinfo,所以在phpinfo下面看到的就是这样:
我安装的php版本是7.3.2。
1. 查一下对应的安装包下面是否有该扩展包[root@------------ ~]# find / -name fileinfo
/usr/local/src/php-7.3.2/ext/fileinfo #如果有这个包,就直接cd到该目录下,如果没有则自行下载对应版本的包。
2. cd到该安装包的目录cd /usr/local/src/php-7.3.2/ext/fileinfo
ls -l 大概有下面这些文件
3. 利用phpize脚本编译[root@-------------- fileinfo]# /usr/local/php/bin/phpize #回车后如果返回下面代码,表示成功执行
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
4. 编译、安装
还是在当前路径下面执行下面代码./configure --with-php-config=/usr/local/php/bin/php-config #如果没错的话 就执行 安装 make && make install
make && make install #回车后如果返回下面代码,表示成功
Build complete.
Don't forget to run 'make test'.
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20180731/
在编译的时候,我这报了一个错
gcc: internal compiler error: Killed (program cc1plus)
原因是因为内存不足导致的,下面是网上的解决办法sudo mkdir -p /var/cache/swap/
sudo dd if=/dev/zero of=/var/cache/swap/swap0 bs=1M count=512
sudo chmod 0600 /var/cache/swap/swap0
sudo mkswap /var/cache/swap/swap0
sudo swapon /var/cache/swap/swap0
利用./php -m 查看该扩展,如果安装完成后发现还没有fileinfo扩展,可参考一下几点调整:安装完是否重启nginx、php-fpm
php.ini是否被加载(./php --ini 可查看)
是否在php.ini配文件内添加 extension=fileinfo.so
检查安装目录下是否存在fileinfo.so文件(第四步下面返回的路径下查看)