已经按照了 lnmp1.3 的PHP7,在运行 laravel 5.4 上传图片的时候,报错:
(1/1) LogicException Unable to guess the mime type as no guessers are available (Did you enable the php_fileinfo extension?)
原因是:缺少 fileinfo扩展,一般安装包编译的时候考虑到fileinfo需要的资源比较多,所以没有在安装的时候编译安装这个扩展。
还好 lnmp1.3 安装包还在,自己安装吧:
1、登录服务,进入 lnmp1.3/src。
2、因为我安装的是 php-7.0.7 ,所以要解压 php-7.0.7.tar.gz ,里面有各种安装源文件,这点蛮好的,省的我自己去找。
# tar -zxvf php-7.0.7.tar.gz
如果是安装的是 lnmp1.5 ,那 src里面是 php-7.2.6.tar.bz2,解压命令是:
#tar -jxvf php-7.2.6.tar.bz2
3、进入 lnmp1.3/src/php-7.0.7/ext/fileinfo
# cd lnmp1.3/src/php-7.0.7/ext/fileinfo
4、通过 phpize 建立 php 的外挂模块
# /usr/local/php/bin/phpize Configuring for: PHP Api Version: 20151012 Zend Module Api No: 20151012 Zend Extension Api No: 320151012
5、配置
# ./configure --with-php-config=/usr/local/php/bin/php-config
6、编译
# make && make install
7、修改 php.ini 文件,添加 fileinfo 扩展
extension = fileinfo.so
8、重启 php-fpm 后在phpinfo即可看到 fileinfo 已经开启
# /etc/init.d/php-fpm restart