php 获取 mime type 类型,fileinfo扩展

背景:

version < php-5.3 没有API能够查看文件的 mime_type, 故需要编译扩展 fileinfo 来扩展PHP的API(finfo_*系列函数)。php-5.3 以后将fileinfo 拉入的官方发行包中,将不存在此问题。

软件准备:

php: php-5.2.14
Fileinfo: Fileinfo-1.0.4.tgz
file: file-5.20.tar.gz

 

1、file 安装

wget ftp://ftp.astron.com/pub/file/file-5.15.tar.gz
tar zxf file-5.20.tar.gz
cd file-5.20/ 
./configure --prefix=/usr/local/services/file-5.20 
make  
make install 

 

2、Fileinfo扩展编译安装

wget http://pecl.php.net/get/Fileinfo-1.0.4.tgz
tar zxf Fileinfo-1.0.4.tgz
cd Fileinfo-1.0.4/ 
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-fileinfo=/usr/local/services/file-5.20/
make
#拷贝fileinfo.so 到php.ini 中定义的 extension_dir
cp fileinfo.so /usr/local/php/extensions/

#修改php.ini
echo "extension=fileinfo.so" >> /usr/local/php/lib/php.ini

 

3、验证

php -m | grep fileinfo
fileinfo

 

备注:
1、安装软件注意查看 ./configure --help 其中会指出库或头文件的依赖
2、扩展移植,查看依赖, 移植需要注意对:libmagic.so.1 的依赖

ldd /usr/local/php/extensions/fileinfo.so
linux-vdso.so.1 => (0x00007fff9b7ff000)
libmagic.so.1 => /usr/local/lib/libmagic.so.1 (0x00007f8493582000)
libc.so.6 => /lib64/libc.so.6 (0x00007f8493342000)
libz.so.1 => /lib64/libz.so.1 (0x00007f849322d000)
/lib64/ld-linux-x86-64.so.2 (0x00007f84937a4000)

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。