我们编译完php之后,它有一个功能可以查看所有加载的模块,这些模块会包含一些静态的也会包含一些动态的
[root@zhangmengjunlinux curl]# /usr/local/php/bin/php -m
一些动态的可以再php.ini也就是php的配置文件里去定义,有时候在我们编译完php之后发现少了一些模块没有编译进来,解决办法有两种:
第一去重新编译安装,找到你的源码包重新来一遍
第二种使用动态的方式把它加载进来,你单独的编译出来的模块就可以了,类似于apache的动态模共享模块,现在我们来尝试编译动态模块
很多模块的源码包都在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
好了我们去编译安装
[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它是动态的
本文出自 “田埂上的梦” 博客,请务必保留此出处http://mengjunlinux.blog.51cto.com/10772888/1732252
原文:http://mengjunlinux.blog.51cto.com/10772888/1732252