2331 发表于 2016-1-7 08:55:14

php扩展模块如何安装

我们编译完php之后,它有一个功能可以查看所有加载的模块,这些模块会包含一些静态的也会包含一些动态的
# /usr/local/php/bin/php -m
一些动态的可以再php.ini也就是php的配置文件里去定义,有时候在我们编译完php之后发现少了一些模块没有编译进来,解决办法有两种:

[*]第一去重新编译安装,找到你的源码包重新来一遍

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


很多模块的源码包都在ext目录下,假如说我们没有curl,编译一下curl
# cd curl进入它的源码下,可以编译一个模块
# ls
config.m4config.w32CREDITScurl.dspinterface.cmulti.cpackage.xmlphp_curl.hstreams.ctests
# /usr/local/php/bin/phpize    用这个命令可以目的是为了生成                                                               configuring生成这个可执行文件
Configuring for:
PHP Api Version:         20090626
Zend Module Api No:      20090626
Zend Extension Api No:   220090626

好了我们去编译安装
# ./configure --with-php-config=/usr/local/php/bin/php-config
这个是固定的语法,一般编译不会有错,往往是因为少了什么库,然后make,makeinstall
install的时候它会把模块的文件放在这个目录下
接下来就是去php.ini配置文件中把配置一下,把这个模块加载进来就可以了,extension_dir是存放这些扩展模块的,那我们应该去找一下她的extension到底在哪了

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

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

好了我们看到已经加载进来了,我们如何看动态加载的模块有那些呢,可以再php.ini里去grep
# grep '^extension=' /usr/local/php/etc/php.ini
extension=curl.so
其实我们最终过滤出来只有一行,说明只有curl.so它是动态的

页: [1]
查看完整版本: php扩展模块如何安装