fileinfo模块中的函数通过在文件的给定位置查找特定的 魔术 字节序列 来猜测文件的内容类型以及编码。 虽然不是百分百的精确, 但是通常情况下能够很好的工作。

这里以php7.2为例,本文php的安装目录为/usr/local/php/

安装

首先进入php的源码包fileinfo目录,如果没有源码先下载解压:

cd php-7.2.6/ext/fileinfo/

执行phpize命令,该命令一般在php的安装目录bin目录下:

/usr/local/php/bin/phpize

会返回:

Configuring for:
PHP Api Version:         20170718
Zend Module Api No:      20170718
Zend Extension Api No:   320170718

接着就是编译安装了,其中/usr/local/php/bin/php-config路径也是位于php安装目录里:

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

make && make install

配置

找到php配置文件php.ini的位置,在最后加入:

extension = "fileinfo.so"

最后重启php服务即可:

service php-fpm restart

如果是以apache模块形式运行的php,则重启apache。