PHP一些扩展在编译的时候没有安装怎么办?

  • 来源:
  • 更新日期:2018-05-09

摘要:我们在配置Web环境的时候,有时候会根据现有要求,编译出的环境仅仅满足当前的需要。 但在后期随着业务的发展或架构升级,需要一些PHP新的扩展,这时候我们就要动态编译一下PHP扩展。 今天重新配置一个虚拟主机,运行新的框架报fileinfo不存在,得到Mine类型报错,检测发现在升级PHP的时候禁用了fileinfo,所以现在要动态编译fileinfo扩展。 方法其实很简单! 1、首先检测我们

我们在配置Web环境的时候,有时候会根据现有要求,编译出的环境仅仅满足当前的需要。
但在后期随着业务的发展或架构升级,需要一些PHP新的扩展,这时候我们就要动态编译一下PHP扩展。

今天重新配置一个虚拟主机,运行新的框架报fileinfo不存在,得到Mine类型报错,检测发现在升级PHP的时候禁用了fileinfo,所以现在要动态编译fileinfo扩展。

方法其实很简单!

1、首先检测我们需要的扩展是否可用,同时PHP版本是多少?

002UASMrzy7605pjKJv15&690.jpg

以fileinfo为例

/usr/bin/php -i|grep fileinfo

若出现 fileinfo fileinfo support => enabled 则代表fileinfo扩展可用,否则不可用。

查看PHP版本:

/usr/bin/php --version

结果可能如下:

PHP 5.6.19 (cli) (built: Mar 3 2016 07:57:20)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
with Xdebug v2.4.0, Copyright (c) 2002-2016, by Derick Rethans

2、找到PHP源码

如果没有,请先下载当前环境的版本号。本地已有源码,请切换到源码目录。

cd /root/soft/php-5.6.19/ext

ext是PHP下扩展目录,里面都是PHP的扩展

3、如何动态编译扩展,以fileinfo扩展为例

cd fileinfo /usr/local/php/bin/phpize ----给PHP动态添加扩展命令,在php的bin目录下 ./configure -with-php-config=/usr/local/php/bin/php-config make && make install

4、在php.ini里添加扩展名称

vi /etc/php.ini extension=fileinfo.so --添加扩展名称

其它扩展类似