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

自古美人都是妖i 提交于 2019-12-06 21:28:17
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命令即可.

#/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 ,然后它告诉你一个目录.

#make
#make install

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

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

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后,执行下面的命令:
/home/vsrank/php/bin/phpize
即执行phpize工具,执行后,可以看到目录下生成了对应的configure文件:

5.现在就可以通过configure来配置,执行下面的命令:
./configure --enable-sockets --with-php-config=/home/vsrank/php/bin/php-config  
 
make  
 
make install
执行之后,可以看到下面的输出:
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,增加下面的语句:
extension="/home/vsrank/php/lib/php/extensions/no-debug-non-zts-20090626/sockets.so"
可以看到和上面的输出是一致的。

7.重启Apache,接下来就可以看看自己的socket是不是配置好了。。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!