Linux下安装如何正确安装php扩展

什么是php扩展

PECL(php扩展) PECL 的全称是 The PHP Extension Community Library ,是一个开放的并通过 PEAR(PHP Extension and Application Repository,PHP 扩展和应用仓库)打包格式来打包安装的 PHP扩展库仓库。通过 PEAR 的 Package Manager 的安装管理方式,可以对 PECL 模块进行下载和安装

  • 按照自己的理解就是php内核是由zend引擎构成的,zend引擎负责将php代码翻译(词法、语法解析等一系列编译过程)为可执行opcode的处理并实现相应的处理方法、实现了基本的数据结构(如hashtable、oo)、内存分配及管理、提供了相应的api方法供外部调用,是一切的核心,所有的外围功能均围绕Zend实现。
  • Extensions(php扩展),以插件形式提供各种服务,我们常见的很多字符串函数,数组函数这些都是通过扩展来实现的。
  • Sapi全称是Server Application Programming Interface,也就是服务端应用编程接口,Sapi通过一系列钩子函数,使得PHP可以和外围交互数据,这是PHP非常优雅和成功的一个设计,通过sapi成功的将PHP本身和上层应用解耦隔离,PHP可以不再考虑如何针对不同应用进行兼容,而应用本身也可以针对自己的特点实现不同的处理方式。
  • 如果PHP是一辆车,那么车的框架就是PHP本身,Zend是车的引擎(发动机),Ext下面的各种组件就是车的轮子,Sapi可以看做是公路,车可以跑在不同类型的公路上,而一次PHP程序的执行就是汽车跑在公路上。因此,我们需要:性能优异的引擎+合适的车轮+正确的跑道。

安装php扩展

官方扩展下载地址:https://pecl.php.net/

下载对应版本需要注意该扩展对应的php版本,下载扩展需要注意也就是这一个。

下载出来的文件解压后分两种情况

  1. 如果里面只有一个 .so 文件,则可以直接将该文件放到php安装目录下 lib/php/extensions/no-debug-non-zts-20151012/ 文件夹中去,然后在php.ini文件中开启相应的扩展,随后重启下php-fpm就行了
  2. 如果里面只有.h .c文件的情况下,我们就需要进行编译安装了,
    • which phpize查询 phpize目录情况
    • 根据该目录情况 /usr/local/php/bin/phpize 以下对应的扩展包
    • ./configure --with-php-config=/usr/local/php/bin/php-config
    • make && make install