查看php加载了哪些模块:[root@master ~]# /usr/local/php/bin/php -m

这些模块会包含一些静态的的也会包含一些动态的,有时候我们会有一些需求,这些模块在我们刚刚编译完php之后,发现少了一个模块,没有编译进来,解决办法有两种,第一要重新编译,第二种使用动态方式把他加载进来

[root@master ~]# cd /usr/local/src/php-5.3.28

[root@master php-5.3.28]# cd ext/

[root@master ext]# ls(可以看到编译的模块)

[root@master ext]# /usr/local/php/bin/php -m |grep -i curl(执行后发现没有curl,那我们就可以编译curl)

[root@master ext]# cd curl/

[root@master curl]# ls

config.m4   CREDITS   interface.c  package.xml  streams.c

config.w32  curl.dsp  multi.c      php_curl.h   tests

[root@master curl]# /usr/local/php/bin/phpize(这一步为了生成config文件config.sub configure config.guess )

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

[root@master curl]# make

[root@master curl]# make install

模块文件会放到这个目录下:/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/

[root@master curl]# ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/curl.so

/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/curl.so

extension_dir是存放curl.so这些扩展模块的

extension_dir在哪里呢?通过下面的查询,在这个目录下/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626

[root@master curl]# /usr/local/php/bin/php -i |grep extension_dir

extension_dir => /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626 => /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626

sqlite3.extension_dir => no value => no value

[root@master curl]# vim /usr/local/php/etc/php.ini

添加 extension=curl.so


[root@master curl]# /usr/local/php/bin/php -m |grep -i curl(curl是动态加载模块)

curl


参考资料:http://blog.csdn.net/21aspnet/article/details/7471574

http://blog.csdn.net/lyjtynet/article/details/6249109