一、说明
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
php-7.2.17.tar.gzhttps://www.php.net/distributions/php-7.2.17.tar.gz 2:在PHP源码目录下找到扩展程序目录
3:进入到对应的扩展源程序目录
cd php-7.2.17/ext/tidy
4:编译扩展程序
phpize //检测扩展目录是否生成相应的configure文件
./configure --with-php-config=php-config //配置php-config程序的路径,扩展编译需要用php-config命令找到php主程序安装位置
什么是phpize及其用法https://blog.csdn.net/weixin_38674371/article/details/84714696
5:修改配置文件,添加扩展
PHP编译完成后的扩展会根据编译参数或者内部版本号,默认保存在类似这样的目录中:
编辑
添加配置信息,测试模块加载是否正常
vim php.ini //将tidy扩展加入php配置文件
...
...
extension=tidy.so
...
php -m //查看php现有模块列表
6:可能遇到的问题
问题:执行./configure进行编译的时候报错(no such file or directory),如下:
解决:先执行phpize程序生成configure文件,然后再执行./configure程序进行编译