不重新编译PHP,单独添加扩展模块的方法

问题

php自身提供了很多扩展,比如curl,gmp, mbstring等等。我们在编译安装php时未必安装了所有扩展。那么在安装完php后,如果想单独安装某个php自身的扩展怎么办呢?

我们以curl扩展模块的安装为例说明如何单独添加扩展。

步骤

1.进入php源码的扩展目录。本例中我的源码对应目录如下:

/root/.tmp/php72/php-7.2.7/ext/

2.进入模块目录,我们安装的是gd扩展,所以进入gd目录。此时,我们所在的目录是

/root/.tmp/php72/php-7.2.7/ext/gd

3.执行phpize。注意,如果你的机器上有多个php版本,一定要执行你准备安装扩展的php版本对应的phpize。比如,我的机器上同时有php7.2和php5.6。我当前准备为php7.2安装gd扩展。所以执行php7.2对应的phpize

/usr/local/php/php72/bin/phpize 

Configuring for:
PHP Api Version:         20170718
Zend Module Api No:      20170718
Zend Extension Api No:   320170718

4.configure

./configure --with-php-config=/usr/local/php/php72/bin/php-config

说明:如果你的机器上只有一个php版本,大多时候不需要特别使用–with-php-config指明相应的php-config所在位置。

5.执行make,之后会在./modules/目录下生成gd.so文件

6.执行make install

结果类似:
Installing shared extensions:     /usr/local/php70/lib/php/20151012/

7.修改php.ini

extension=gd.so