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

一、 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/phpize
Configuring for:
PHP Api Version:         20160303
Zend Module Api No:      20160303
Zend 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 install
Installing 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.ini
extension_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-config
configure: error: invalid feature name: soap 

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

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

你可能感兴趣的:(PHP)