近期在开发新项目时,需要使用到上传文件功能。我使用的上传附件管理是第三方的库laravel-stapler,使用也是挺方便的。但是因为线上服务器使用的是lnmp安装套件,在正式使用时会出现fileinfo插件不可用的问题,这是因为lnmp套件下安装php 5.6.9时默认不开放fileinfo支持。这里可以用以下两种方法解决:
1. 如果尚未安装lnmp套件,请按以下步骤处理。
a. 打开`cd /root/downloads/lnmp1.2-full/include/php.sh`文件,路径请参考自己安装的路径。
b. 找到函数`Install_PHP_56()`,然后修改编译选项`--disable-fileinfo`,将这里修改为`--enable-fileinfo`
c. 执行安装过程
2. 如果已经安装LNMP套件,请按以下步骤处理
a. 跳转到fileinfo源代码目录` cd /root/downloads/lnmp1.2-full/src/php-5.6.9/ext/fileinfo/`
b. 执行 `/usr/local/php/bin/phpize`
c. 执行 `./configure --with-php-config=/usr/local/php/bin/php-config`
d. 执行 `make && make install`
e. 修改php.ini文件 `vi /usr/local/php/etc/php.ini` 在末尾增加`extension = fileinfo.so`即可
f. 重启php-fpm ,`/etc/init.d/php-fpm reload`
采用以上两个步骤均可解决fileinfo扩展不存在的问题,也可以自行手动编译安装。