欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

ubuntu下安装和使用php的fileinfo扩展

PHP 的Fileinfo 扩展是libmagic库的一个封装,可以用来获得文件的一些信息,如MIME类型,可以用来更好地代替magic_mime扩展中的mime_content_type()函数。 网上流传的安装向导较少,现DIY后给大家分享一下。

 

有关fileinfo的介绍请参考php官网,这里简要分享一下我自己的安装及测试过程。

http://www.php.NET/manual/en/book.fileinfo.php

 

fileinfo()是pecl的其中的function之一
需安裝pecl才能用, 要安裝pecl, 必须有phpize指令

 

我们来执行

pecl install fileinfo

系统提示:

WARNING: "pear/Fileinfo" is deprecated in favor of "channel://php-src/ext/fileinfo/in php sources"
downloading Fileinfo-1.0.4.tgz ...
Starting to download Fileinfo-1.0.4.tgz (5,835 bytes)
.....done: 5,835 bytes
3 source files, building
running: phpize
sh: phpize: not found
ERROR: `phpize' failed

 

下面安装phpize

首先需要有php5-dev

直接执行phpize,系统会提示:

No command 'phpize' found, did you mean:
 Command 'phpize5' from package 'php5-dev' (main)
phpize: command not found

 

那么我们来安装php5-dev

sudo apt-get install php5-dev

 

安装完成后,再执行:

sudo pecl install fileinfo

 

会发现如下的错误提示:

checking for magic files in default path... not found
configure: error: Please reinstall the libmagic distribution
ERROR: `/build/buildd/php5-5.3.2/pear-build-download/Fileinfo-1.0.4/configure' failed


那么再安装一下libmagic:

sudo apt-get install libmagic-dev

安装完成后,再执行:

sudo pecl install fileinfo

 

ok,看到了这样的提示:

Installing '/usr/lib/php5/20090626/fileinfo.so'
install ok: channel://pear.php.Net/Fileinfo-1.0.4

说明Fileinfo 安装完成,

我们会发现

php模块的目录下多了个fileinfo.so文件,同时,
在/usr/share/file目录下有magic.mime和magic两个文件。

然后需要修改php.ini文件,加入

 extension=fileinfo.so

 


重启nginx和fastcgi

 

 

 

在自己的web页面上加入下面这段测试代码:

<?php

// return mime type ala mimetype extension
$finfo = finfo_open(FILEINFO_MIME_TYPE);

if (!$finfo) {
    echo "Opening fileinfo database failed";
    exit();
}

/* get mime-type for a specific file */
$filename = "/ciray/images/copyright.gif";  //这里写你的WEB目录中要测试的文件路径 
echo $filename . ' --> ' . finfo_file($finfo, $filename) . '<br>';

?>

 

运行一下,如果显示

/ciray/images/copyright.gif --> image/gif

说明大功告成!

来自 http://blog.csdn.net/ciray/article/details/5727734

普通分类: