linux下用phpize给PHP动态添加扩展

phpize简介  

phpize 是属于 php-devel 中的东西,主要是设定 php 外挂模块的一些设定 

所以安装 php-devel 相关套件就会有 phpize 可以使用 (档案预设存放于 /usr/bin/phpize ) 

phpize 命令是用来准备 PHP 外挂模块的编译环境的。下面例子中,外挂模块的源程序位于  extname 目录中   : 

$ cd extname 
$ phpize 
$ ./configure (  注一
$ make 
$ make install 

成功的安装将建立 extname.so 并放置于 PHP 的外挂模块目录中 (预设存放于 /usr/lib/php/modules/ 内) 。 

需要调整 php.ini,加入 extension=extname.so 这一行之后才能使用此外挂模块。 

注一 : 

如在执行   ./configure  时出现   not find –with-php-config  时, 

可重下以下指令,因 –with-php-config 预设在 /usr/bin/php-config 可找到 

./configure –with-php-config=/usr/bin/php-config  

需要调整 php.ini,加入 extension=extname.so 这一行之后才能使用此扩展库。


phpize给PHP动态添加扩展

使用php的常见问题是编译php时忘记添加某扩展,后来想添加扩展,但是因为安装php后又装了一些东西如PEAR等,不想删除目录重装,这里就需要用到phpize了。

如我想增加bcmath扩展的支持,这是一个支持大整数计算的扩展。windows自带而且内置,linux“本类函数仅在 PHP 编译时配置了 --enable-bcmath 时可用”(引号内是手册中的话)

注意,有些扩展需要和php的版本保持一致才可以的.

解压bcmath包,进入里面的ext/bcmath目录,然后执行/usr/local/php/bin/phpize,phpize在php安装完以后会有这个命令的, 会发现当前目录下多了一些configure文件,然后再执行./configure命令即可.

?
1
2
#/usr/local/php/bin/phpize
#./configure --with-php-config=/usr/local/php/bin/php-config

注意要先确保/usr/local/php/bin/php-config存在。 (如果你的php安装路径不是默认的,请修改为php安装的路径)

如果没有报错,则make,再make install ,然后它告诉你一个目录.

?
1
2
#make
#make install

你把该目录下的bcmath.so拷贝到你php.ini中的extension_dir指向的目录中,

修改php.ini,在最后添加一句

?
1
extension=bcmath.so

重启WEB服务,再执行phpinfo(),惊喜发现:

到此bcmath扩展已经安装成功!


另附:

Linux下利用phpize安装php扩展

php有很多扩展功能,我们在初次安装的时候并没有安装某些扩展,可能在使用的过程中,又需要用到这些扩展。php提供了一个phpize工具供我们安装需要的扩展。 

下面我通过安装socket扩展来介绍phpize的使用: 

1.找到自己的php安装目录,例如我的目录是home/vsrank/php,在该目录下,找到bin/phpize。如果没有这个工具,则说明没有安装该工具,那么需要安装php.dev,一般都会有这个工具。 

2.要扩展的话,就需要有一个和当前已安装的php的版本一样的php的源包,当前php版本可以用过phpinfo()查看。就是初次安装后查看安装是否成功的那个test.php。 

3.打开源包目录,进入到ext目录,例如我就进入到:/home/vsrank/php-5.3.10/ext下,ext下有各个php带有的扩展模块,进入到ext/sockets中。 

4.cd到ext/sockets后,执行下面的命令: 
?
1
/home/vsrank/php/bin/phpize
即执行phpize工具,执行后,可以看到目录下生成了对应的configure文件: 

5.现在就可以通过configure来配置,执行下面的命令: 
?
1
2
3
4
5
. /configure -- enable -sockets --with-php-config= /home/vsrank/php/bin/php-config 
  
make 
  
make install
执行之后,可以看到下面的输出: 
?
1
2
Installing shared extensions:     /home/vsrank/php/lib/php/extensions/no-debug-non-zts-20090626/ 
Installing header files:          /home/vsrank/php/include/php/
第一个就是扩展模块的生成目录,可以在对应目录下看到对应的sockets.so文件。 

6.更改php.ini,增加下面的语句: 
?
1
extension= "/home/vsrank/php/lib/php/extensions/no-debug-non-zts-20090626/sockets.so"
可以看到和上面的输出是一致的。 

7.重启Apache,接下来就可以看看自己的socket是不是配置好了。。




原文地址:http://blog.haohtml.com/archives/6118


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值