咱们编译完php以后,它有一个功能能够查看全部加载的模块,这些模块会包含一些静态的也会包含一些动态的php
[root@zhangmengjunlinux curl]# /usr/local/php/bin/php -m linux
一些动态的能够再php.ini也就是php的配置文件里去定义,有时候在咱们编译完php以后发现少了一些模块没有编译进来,解决办法有两种:apache
第一去从新编译安装,找到你的源码包从新来一遍curl
第二种使用动态的方式把它加载进来,你单独的编译出来的模块就能够了,相似于apache的动态模共享模块,如今咱们来尝试编译动态模块ide
不少模块的源码包都在ext目录下,假如说咱们没有curl,编译一下curlurl
[root@zhangmengjunlinux ext]# cd curl 进入它的源码下,能够编译一个模块3d
[root@zhangmengjunlinux curl]# ls xml
config.m4 config.w32 CREDITS curl.dsp interface.c multi.c package.xml php_curl.h streams.c testsblog
[root@zhangmengjunlinux curl]# /usr/local/php/bin/phpize 用这个命令能够目的是为了生成 configuring生成这个可执行文件ci
Configuring for:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626
好了咱们去编译安装
[root@zhangmengjunlinux curl]# ./configure --with-php-config=/usr/local/php/bin/php-config
这个是固定的语法,通常编译不会有错,每每是由于少了什么库,而后make,makeinstall
接下来就是去php.ini配置文件中把配置一下,把这个模块加载进来就能够了,extension_dir是存放这些扩展模块的,那咱们应该去找一下她的extension到底在哪了
extension_dir也是能够自定义的,咱们去配置一下extension_dir
保存退出,这个时候咱们能够查看curl模块是否是已经加载进来了
好了咱们看到已经加载进来了,咱们如何看动态加载的模块有那些呢,能够再php.ini里去grep
[root@zhangmengjunlinux curl]# grep '^extension=' /usr/local/php/etc/php.ini
extension=curl.so
其实咱们最终过滤出来只有一行,说明只有curl.so它是动态的