问题列表分类: PHPLnmp没有php_fileinfo扩展怎么办?
1
头像付杰 管理员 asked 2年 ago

因为我用的服务器安装的lnmp一键安装包,但是由于我程序的原因,需要用到php fileinfo扩展,但是项目上线了发现缺少了php fileinfo;因为我本地用的是apache,本地是有fileinfo.dll这个扩展的,但是lnmp却没有找到fileinfo.dll,求解?

4 Answers
1
头像付杰 管理员 answered 2年 ago

首先我们要明白:apache nginx两者之间的区别,再一个是两者php扩展的表现形式,apache的扩展都是以*.dll结尾的,而nginx却不是这样的,lnmp环境下,如果你的php缺少fileinfo扩展,我们需要去源码编译安装或pecl下载扩展包;安装成功后再写入配置文件;重启即可!

下面讲两种lnmp安装php_fileinfo扩展方法:

1
头像付杰 管理员 answered 2年 ago

第一种:PHP源码安装fileinfo扩展
1、下载php官网的源码包
2、解压php源码包
3、进入php源码包ext/fileinfo目录
4、根据当前的 php 版本动态的创建扩展的 configure 文件
5、编译并安装
6、把生成的.so 扩展, 在 php.ini 里引入
7、重启

tar vfxz php7.0.tar.gz
cd php7.0/ext/fileinfo
/usr/local/php7/bin/phpize
./configure -with-php-config=/usr/local/php7/bin/php-config
make && make install
把生成的.so扩展,在php.ini里引入,并重启php;

上面只是我lnmp安装fileinfo扩展的思路以及详细命令操作,你要根据你自己的路径来做适当的修改;

如果你的服务器上没有php源码包,或懒得去下载ph源码包,又或者你的php源码中没有fileinfo目录,你可以试用下面这种方法;

1
头像付杰 管理员 answered 2年 ago

第二种:pecl下载扩展包fileinfo安装
1、pecl官网下载:http://pecl.php.net/package/fileinfo
2、解压fileinfo.tar.gz
3、进入fileinfo目录
4、根据当前的 php 版本动态的创建扩展的 configure 文件
5、编译并安装
6、把生成的.so 扩展, 在 php.ini 里引入
7、重启

wget http://pecl.php.net/get/Fileinfo-1.0.4.tgz
tar vfxz Fileinfo-1.0.4.tgz
cd  Fileinfo-1.0.4
/usr/local/php7/bin/phpize
./configure -with-php-config=/usr/local/php7/bin/php-config
make && make install
把生成的.so扩展,在php.ini里引入,并重启php;

1
头像付杰 管理员 answered 2年 ago

说最后一点注意事项吧!
1、是否需要用到phpize这个步骤,需要根据你的扩展包下面是否有configure ,如果已经存在,你可以不需要用phpize;
2、phpize是什么呢?phpize简单来说就是用来扩展php模块的,可以通过phpize建议php的外挂模块,phpize主要用在linux服务器居多;