洛阳铲的日志

2007年04月9日

不用重新编译PHP也能安装新的模块

Filed under: 生活小札 — HackGou @ 18:18

我是个很传统的人,一直以来,给PHP安装新模块,都是给configure添加新的–with-XXXX或者–enable-XXX,直到当mod_zip.so遇到5.0.4。印象中4.0以上的–with-zip=[DIR],5.2的–enable-zip就OK了,但是遗憾的是,5.0.4和5.1.6并不支持这两个选项,郁闷了,一百多台服务器都是这两个版本,一般是不会轻易进行版本切换的,怎么办?找来找去发现一个好东东:pecl和phpize。 pecl是恐怕知道的人不多,但是提起他的同胞姐妹pear,只要是phper没有不知道的,其实pear和pecl都是php的扩展管理工具,但是两个工具工作的层面不一样:pear安装的大多是php代码写的一些扩展库,比如要给PEAR安装Mail支持, 只需要pear install Mail 就可以完成,而pecl(PHP Extension Community Library )起初是pear的一个sub-repository,侧重于一些C写的扩展库。比如上面提到的mod_zip就是一个pecl。我要给他们安装额外的模块,很简单:
pear/pecl install extension_name
比如: 我需要给PHP安装json支持, pear install json
一阵稀里哗啦,从pear.php.net拉包,解压,自动编译,自动copy到extension_dir 多完美! 如果pear不好使,没关系试试pecl(这种情况正好发生在一个正式环境下面):
pecl install json
如果这些都不好使,还有倒数第二招: phpize phpize是一个php模块编译预处理脚本,能够为extension准备预编译环境,然后进行make、make install就可以很方便的安装,当然这时候extension的源代码是得手工下载的: tar xvfz zip-1.8.8.tgz cd zip-1.8.8 phpize make && make install 大功告成,当然上面三种方案中,都要注意extension-dir和extension=选项的设置,否则,即使编译,安装完成,用php -m也看不见你的工作成果,如果和apache合用,别忘了重新启动apache。
如果上面还是不行,那只有出绝招了: 一切从源码开始,一切皆有可能 :D

没有评论 »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress