ubuntu info.php,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页面上加入下面这段测试代码:

// 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) . '
';

?>

运行一下,如果显示

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

说明大功告成!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值