PHP系列—动态添加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之友评论