在 windows 上用laravel写了一个博客,当今天放到linux服务器上时,直接报如下错误页不能运行:
PHP Fileinfo extension must be installed/enabled to use Intervention Image
原来是linux服务器上缺少 fileinfo扩展,于是装上 fileinfo扩展后,程序可以正常运行。服务器使用的是lnmp一键安装包1.2,安装包里面默认包含一些扩展没有安装,如果为安装 fileinfo扩展的步骤:
1、进入扩展源代码目录,目录 /lnmp1.2-full/src/php-5.6.9/ext/ 为安装包自带的源带码目录,所以通过如下命令进行 fileinfo 源代码目录:
cd /lnmp1.2-full/src/php-5.6.9/ext/fileinfo
2、通过 phpize 建立 php的外挂模块,命令如下(在 fileinfo 源代码目录下执行):
/usr/local/php/bin/phpize
上面命令会返回如下信息:
Configuring for: PHP Api Version: 20131106 Zend Module Api No: 20131226 Zend Extension Api No: 220131226
phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块。比如你想在原来编译好的php中加入 memcached 或者 ImageMagick 等扩展模块,具体请参考官方文档:http://php.net/manual/en/install.pecl.phpize.php。
3、通过2中的命令会在当前目录生成 configure 文件 ,然后执行如下命令:
./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-20131226/
4、将扩展添加到 /usr/local/php/etc/php.ini 中:
extension=fileinfo.so
然后重启 php-fpm:
/etc/init.d/php-fpm restart
其他扩展也可以按同样方式安装。