今天在尝试安装一款PHP程序时,提示缺少fileinfo模块,但是我的PHP是LAMP一键包中的,懒得再重新编译,于是想办法将fileinfo模块作为extension拓展加入了PHP中。

PHP程序具体的出错信息为:

PHP function mime_content_type() is missing, try enabling fileinfo module.

我安装的LAMP来自于OneInStack一件包,不知为何编译时默认没有开启fileinfo:
phpinfo.jpg
于是想到了通过extension扩展的方式,加入fileinfo模块。


找到php的安装源

我在/lnmp/src/目录下找到了php-7.1.11.tar.gz,将其解压后,我们进入源码目录下的fileinfo目录:

cd /lnmp/src/php-7.1.11/ext/fileinfo/

然后执行命令:

/usr/local/php/bin/phpize

会返回如下的执行结果:

Configuring for:
PHP Api Version:         20041225
Zend Module Api No:      20060613
Zend Extension Api No:   220060519

关于phpsize:http://php.net/manual/en/install.pecl.phpize.php
phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块,比如你想在原来编译好的php中加入memcached或者ImageMagick等扩展模块,可以使用phpize。


编译fileinfo

./configure --with-php-config=/usr/local/php/bin/php-config
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-20060613/

即表示编译成功。


在PHP中开启

我们找到/usr/local/php/etc/php.ini,加入这一行:

extension=fileinfo.so

然后重启PHP,我们就会发现已经开启fileinfo了:
php-fileinfo-2.jpg

Last modification:July 10, 2019
If you think my article is useful to you, please feel free to appreciate