php扩展模块如何安装

我们编译完php之后,它有一个功能可以查看所有加载的模块,这些模块会包含一些静态的也会包含一些动态的

[root@zhangmengjunlinux curl]# /usr/local/php/bin/php -m  

一些动态的可以再php.ini也就是php的配置文件里去定义,有时候在我们编译完php之后发现少了一些模块没有编译进来,解决办法有两种:

  1. 第一去重新编译安装,找到你的源码包重新来一遍

  2. 第二种使用动态的方式把它加载进来,你单独的编译出来的模块就可以了,类似于apache的动态模共享模块,现在我们来尝试编译动态模块

wKioL1aNCdaw7Sa8AADRfAO8s4w034.png

很多模块的源码包都在ext目录下,假如说我们没有curl,编译一下curl

[root@zhangmengjunlinux ext]# cd curl  进入它的源码下,可以编译一个模块

[root@zhangmengjunlinux curl]# ls 

config.m4  config.w32  CREDITS  curl.dsp  interface.c  multi.c  package.xml  php_curl.h  streams.c  tests

[root@zhangmengjunlinux curl]# /usr/local/php/bin/phpize    用这个命令可以目的是为了生成                                                               configuring生成这个可执行文件

Configuring for:

PHP Api Version:         20090626

Zend Module Api No:      20090626

Zend Extension Api No:   220090626

wKiom1aNCz2Bb9-TAAAzGOfW7MQ087.png

好了我们去编译安装

wKioL1aNC7aTWgpJAAAxXTqqEic607.png[root@zhangmengjunlinux curl]# ./configure --with-php-config=/usr/local/php/bin/php-config 

这个是固定的语法,一般编译不会有错,往往是因为少了什么库,然后make,makeinstall

install的时候它会把模块的文件放在这个目录下wKiom1aNDFvy1ygUAAAkhAfiYbk108.png

接下来就是去php.ini配置文件中把配置一下,把这个模块加载进来就可以了,extension_dir是存放这些扩展模块的,那我们应该去找一下她的extension到底在哪了

wKioL1aNDX2TYzbdAAAryfvVZaQ927.png

extension_dir也是可以自定义的,我们去配置一下extension_dir

wKioL1aNDgbwnqwlAABAFMpkP4s713.png

保存退出,这个时候我们可以查看curl模块是不是已经加载进来了

wKiom1aNDjHSW8CoAAAYxi4QDjI255.png

好了我们看到已经加载进来了,我们如何看动态加载的模块有那些呢,可以再php.ini里去grep

[root@zhangmengjunlinux curl]# grep '^extension=' /usr/local/php/etc/php.ini 

extension=curl.so

其实我们最终过滤出来只有一行,说明只有curl.so它是动态的

你可能感兴趣的:(PHP,扩展模块,如何安装)