给php-7-1-5添加扩展fileinfo
文章发布较早,内容可能过时,阅读注意甄别。
fileinfo 这个扩展是 php 自带的,但是使用 lnmp 一键安装脚本部署的时候并没有启用这个扩展,今天想要部署一个图床服务需要安装这个扩展。
在网上看了不少的文章,基本上都没有效果。这里记录下。
先来看一下是什么状态:
[root@eryajf ~]$php -i |grep fileinfo
Configure Command => './configure' '--prefix=/usr/local/php' '--with-config-file-path=/usr/local/php/etc' '--with-config-file-scan-dir=/usr/local/php/conf.d' '--enable-fpm' '--with-fpm-user=www' '--with-fpm-group=www' '--enable-mysqlnd' '--with-mysqli=mysqlnd' '--with-pdo-mysql=mysqlnd' '--with-iconv-dir' '--with-freetype-dir=/usr/local/freetype' '--with-jpeg-dir' '--with-png-dir' '--with-zlib' '--with-libxml-dir=/usr' '--enable-xml' '--disable-rpath' '--enable-bcmath' '--enable-shmop' '--enable-sysvsem' '--enable-inline-optimization' '--with-curl' '--enable-mbregex' '--enable-mbstring' '--enable-intl' '--with-mcrypt' '--enable-ftp' '--with-gd' '--enable-gd-native-ttf' '--with-openssl' '--with-mhash' '--enable-pcntl' '--enable-sockets' '--with-xmlrpc' '--enable-zip' '--enable-soap' '--with-gettext' '--disable-fileinfo' '--enable-opcache' '--with-xsl'
fileinfo
fileinfo support => enabled
1
2
3
4
2
3
4
然后去到源码目录进行重新编译添加:
[root@eryajf ~]$cd /mnt/lnmp1.4-full/src/php-7.1.5/ext/fileinfo/
1
这时这个目录是无法直接编译的,需要执行以下命令生成编译文件:
[root@eryajf fileinfo]$phpize
Configuring for:
PHP Api Version: 20160303
Zend Module Api No: 20160303
Zend Extension Api No: 320160303
1
2
3
4
5
2
3
4
5
然后进行编译即可:
./configure --with-php-config=/usr/local/php/bin/php-config --enable-fileinfo
make && make install
1
2
2
如果执行无误,则会在最后输出一个目录。
[root@eryajf min-wiki]$ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303
fileinfo.so opcache.a opcache.so
1
2
2
可以看到这里已经生成了需要的 so 文件。
接着配置php.ini
进行引用:
extension = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/fileinfo.so"
1
将如上内容添加在文件当中。然后重启即可。
不过在重启的时候可能会遇到下边的报错:
NOTICE: PHP message: PHP Warning: PHP Startup: Invalid library (maybe not a PHP library) ‘fileinfo.so’ in Unknown on line 0
1
解决办法是回到上边添加一条命令:
$ rm -rf /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/fileinfo.so
$ make clean
$ ./configure --with-php-config=/usr/local/php/bin/php-config --enable-fileinfo
$ make && make install
1
2
3
4
2
3
4
然后再重启就能够看到添加成功了。
[root@eryajf fileinfo]$php -m |grep fileinfo
fileinfo
1
2
2
上次更新: 2024/11/19, 23:11:42