用php -m  这个命令来查看php下加载的模块,如果提示无法执行这个命令,请通过绝对路径去执行或者加入到PATH变量中。

查看到的模块是无法区分静态和动态的。动态的需要在php.ini里面去定义。

如何编译一个没有加载的模块,一种是重新编译,一种是动态的方式加载,单独编译这个模块。

找到php 的源码包。在其中找到ext目录,这个里面有很多的模块的源码,如果没有就需要到网上找这个源码的包,编译的方法是相通的。如果php或者Apache源码包的目录下/usr/local/src/php-5.6.16/ext没有需要的模块目录的话,需要在网上去下载一个模块的源码包到php或者Apache源码包的目录下。

比如要编译安装curl这个模块:php -m |grep -i curl   先确认有没有安装这个模块,没有任何提示就是没有安装,进入到curl这个目录下找到configure   如果没有便在当前目录直接运行phpize这个命令就会生成configure     ;

生成后  运行这个命令  ./configure  --with-php-config=/usr/local/php/bin/php-config   前面是执行的参数,安装哪个模块就在哪个模块下执行这个命令,等号后面是安装后的路径

然后make ------>再make install  将安装的文件放入到一个路径下,会在下面输出结果的。这个文件就是curl模块的文件名称是curl.so ,

有一个目录专门存放这些模块是默认的路径,通过命令可以查到

php -i |grep extension_dir     可以查到那个默认的路径;当然这个extension dir 也是可以自定义的。

vim  /usr/local/php/etc/php.ini    打开php的主配置文件找到extension dir =  这里就可以进行php模块存放位置的路径指向了,

上面一个带路径表示的那个定义存放位置,改不改无所谓。

再一个找到这些类型的文件加入刚刚手动装载的模块extension=curl.so 保存退出就可以了,php -m 查看加载的模块就可以看见刚刚我们保存进php.ini的模块。

这时候我们再用这个命令就可以查看到哪个模块是动态的了:grep '^extension=' /usr/local/php/etc/php.ini    就可在这个配置文件中找到动态加载的模块是哪些。