PHP系列—动态添加php扩展模块

来源:互联网 发布:python高并发解决方案 编辑:程序博客网 时间:2024/05/24 06:23

一、 phpize的作用

什么时候我们要用phpize呢?我们在安装php时:

./configure \--prefix=/usr/local/php \--with-mysql=/usr/local/mysql \--with-iconv \--with-gettext \--with-curl \--enable-fastcgi \--with-openssl ......

后面参数就是我们需要的PHP模块(这些模块安装的时候可能没有编译进来),以后我们可能还想再增加些其他得模块,但是又不想重新编译php,这个是时候我们就可以用phpize了。

二、 安装php模块

下面以soap安装为例:

1、首先进入PHP源码目录,然后找到并切换到ext目录, ext目录下面存放的就是php的模块库

# 切换到soap目录下[root@bogon /]# cd /usr/local/src/php-7.1.7/ext/soap

2、运行phpize生成configure

[root@bogon soap]# /usr/local/php/bin/phpizeConfiguring for:PHP Api Version:         20160303Zend Module Api No:      20160303Zend Extension Api No:   320160303

3、编译

指定php-config,注意这里的php-config,不是php.ini。(可以添加–enable-soap,也可以不用添加)

[root@bogon soap]# ./configure --with-php-config=/usr/local/php/bin/php-config --enable-soap

4、编译安装(make install 之后系统会提示你soap.so文件所在的目录)

[root@bogon soap]# make[root@bogon soap]# make installInstalling shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/

5、生成一个目录来存放扩展的模块并复制soap.so到模块目录

[root@bogon soap]# mkdir /usr/local/php/etc/php/ext[root@bogon soap]# cp /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/soap.so /usr/local/php/etc/php/ext

6、编辑php.ini文件,指定PHP到哪个目录读模块

[root@bogon soap]# vim /usr/local/php/etc/php.iniextension_dir="/usr/local/php/etc/php/ext"# Load模块extension=soap.so# 保存退出# 重启apache# 查看是否有ftp.so[root@bogon soap]# /usr/local/php/bin/php -m|grep ftp

附:操作过程中出现的错误

[root@bogon soap]# ./configure --enable-soap  --with-php-config=/usr/local/php/bin/php-configconfigure: error: invalid feature name: soap 

解决方法:调整一下参数的顺序,如下:

[root@bogon soap]# ./configure --with-php-config=/usr/local/php/bin/php-config --enable-soap
原创粉丝点击