一、说明

php扩展安装一般有两种方式:yum/apt仓库安装和源码编译安装。无论哪种安装方式,最重要的一点是扩展的版本要和php版本相匹配才可以使用。

一般源码安装的php程序都需要相对应的源码编译扩展,PHP主程序源码项目自带了大部分的标准化扩展,如果你需要一个php扩展,应该优先查找找php源码自带的程序,其次才是去社区查找。

二、扩展编译(以php-tidy扩展为例)

1:下载对应版本的PHP源码

wget http://xxx.oss-cn-beijing.aliyuncs.com/oss/admin/php-7.2.17.tar.gz  
tar -zxvf php-7.2.17.tar.gz

Ubuntu18.04下源码编译php7.2扩展程序_PHP

php-7.2.17.tar.gzhttps://www.php.net/distributions/php-7.2.17.tar.gz 2:在PHP源码目录下找到扩展程序目录

Ubuntu18.04下源码编译php7.2扩展程序_php_02

3:进入到对应的扩展源程序目录

cd php-7.2.17/ext/tidy

Ubuntu18.04下源码编译php7.2扩展程序_PHP_03

4:编译扩展程序

phpize                                     //检测扩展目录是否生成相应的configure文件  
./configure  --with-php-config=php-config  //配置php-config程序的路径,扩展编译需要用php-config命令找到php主程序安装位置

Ubuntu18.04下源码编译php7.2扩展程序_源码编译_04

什么是phpize及其用法https://blog.csdn.net/weixin_38674371/article/details/84714696

5:修改配置文件,添加扩展

PHP编译完成后的扩展会根据编译参数或者内部版本号,默认保存在类似这样的目录中:

Ubuntu18.04下源码编译php7.2扩展程序_php_05

Ubuntu18.04下源码编译php7.2扩展程序_PHP_06编辑

添加配置信息,测试模块加载是否正常

vim php.ini                //将tidy扩展加入php配置文件  
...  
...
extension=tidy.so  
...  


php -m                     //查看php现有模块列表

Ubuntu18.04下源码编译php7.2扩展程序_php_07


6:可能遇到的问题

问题:执行./configure进行编译的时候报错(no such file or directory),如下:

Ubuntu18.04下源码编译php7.2扩展程序_php_08

解决:先执行phpize程序生成configure文件,然后再执行./configure程序进行编译