您的位置:

使用phpize增加php模块,phpize安装

本文目录一览:

PHP的扩展模块怎么添加?

php安装好后,可能在初次安装时,会有些模块会有遗漏,但是我们又不想重新编译php,因为耗时是比较长的。我们可不可以在不重新编译安装php的情况下,来为php单独添加某一个模块呢?查找资料,发现还是有方法的,重点就是phpize了,于是写了这篇文章.

下面我们就以单独为php加载mysqli模块为例,演示如何动态为php添加模块。

1、找到php原码安装文件

2、cd /home/php/ext/myslqi

3、运行 /usr/local/php/bin/phpize

4、/configure –with-php-config=/usr/local/php/bin/php-config

5、make make install

6、安装完成之后会在系统/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/这个目录下面生成mysqli.so的库文件

7、编辑php.ini文件,指定php到哪人目录读取模块

vi /usr/local/php/etc/php.ini

extension_dir=”/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613″

extension=mysqli.so

8、重启php服务 /usr/local/php/sbin/php-fpm restart

7、/usr/local/php/bin/php -m|grep mysqli 查看mysqli.so是否存在

如果步骤正确,你的人口也不差的情况下,应该这样php的动态模块加载就完成了。

如何编译安装PHP扩展

一开始安装PHP的时候,我们并不知道需要哪些扩展,所以只有等到我们真正用到的时候才想办法去安装。

安装PHP扩展最简单的办法就是

sudo apt-get install php5-xxx

但有的时候并非我们所愿,源里面并没有我们需要的扩展,这时候就需要我们下载源码自己编译安装了。

这篇文章中我将介绍在本地Linux平台下编译安装PHP扩展的方法。

现在网站根目录下创建 index.php 打印基本的配置信息,以验证我们是否安装成功。

配置编译环境

我们需要安装一些编译必须的库,还有 php-dev 版本

Ubuntu

sudo apt-get install php5-dev php5-mysql gcc libpcre3-dev

Fedora

sudo yum install php-devel php-mysqlnd gcc libtool

RHEL

sudo yum install php-devel php-mysql gcc libtool

Suse

yast2 -i php5-pear php5-devel php5-mysql gcc

安装扩展

PHP有两种可供安装的扩展:一种是PHP原生的但是默认没有安装的,另一种的第三方开发的扩展。

下面依次介绍两种扩展的安装方法:

安装之前我们需要一份和当前机器上相同版本的PHP源码

cd code

wget

tar xvjf php-5.5.9.tar.bz2

cd php-5.5.9

前往此处 下载相应的源码包。

在 /ext 目录下面可以看到所有PHP原生的扩展。

安装原生扩展

以 PHP-intl 为例,这是PHP国际化的扩展。

为了安装这个扩展我们需要先安装ICU 库

sudo apt-get install icu-devtools icu-doc libicu-dev libicu52 libicu52-dbg

ICU 安装成功之后进入/ext/intl 目录:

cd intl

phpize

./configure --enable-intl

make

sudo make install

下面解释一下上面的每个命令:

phpize : 是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块

./configure --enable-intl: 配置编译环境,相当于告诉编译器编译PHP源码的时候加上intl这个扩展。

make: 将会把源码编译成 intl.so

make install : 将会把 intl.so 移动到当前安装的 PHP 的扩展目录。

接下来我们要做的就是在php.ini中启用这个扩展,这一步将会在最后给出示例。

安装第三方扩展

将以这个 扩展为例,这个扩展主要实现了PHP识别条形码的功能。

先安装必要的依赖

sudo apt-get install pkg-config

git clone

cd mongo-php-driver

phpize

./configure

make

sudo make install

将会生成一个文件,将其拷贝到PHP的扩展目录下面。

启用扩展

在php.ini中启用扩展的方式有很多:

直接在php.ini文件中添加 extension=mongo.so,这是最简单直接的方法。

也可以单独建一个ini文件,然后在php.ini中包含这些文件就可以了。

下面介绍一下第二种方法:

cd `/etc/php5/mods-available`

这个目录里可以放新建的ini文件,然后执行

sudo touch mongo.ini

echo "extension=mongo.so" | sudo tee -a mongo.ini

sudo touch intl.ini

echo "extension=intl.so" | sudo tee -a intl.ini

上面的命令将会创建ini文件,并且写如相应的配置信息。

然后执行下面的命令启用扩展即可(需要安装 php5enmod 工具):

sudo php5enmod mongo

sudo php5enmod intl

如果未安装 php5enmod 工具,则需要手动配置:

ln -s /etc/php5/mods-available/mongo.ini /etc/php5/cli/conf.d/mongo.ini

ln -s /etc/php5/mods-available/intl.ini /etc/php5/cli/conf.d/intl.ini

ln -s /etc/php5/mods-available/mongo.ini /etc/php5/fpm/conf.d/mongo.ini

ln -s /etc/php5/mods-available/intl.ini /etc/php5/fpm/conf.d/intl.ini

最后在执行一下重启操作就可以了:

sudo service nginx restart

sudo service php5-fpm restart

如何在编译好的PHP环境中安装PHP扩展模块

1、先进入php解压缩后的源码包中,找到要安装的扩展模块的目录。

[root@redhat5 sockets]# cd /home/soft/php-5.2.12/ext/sockets

在sockets目录下面以绝对路径运行phpize程序,这时会自动生成sockets的configure程序,在sockets目录下面可以看到。

[root@redhat5 sockets]# /home/webserver/php5.2.12/bin/phpize

2、进行编译安装

[root@redhat5 sockets]# ./configure --with-php-config=/home/webserver/php5.2.12/bin/php-config

[root@redhat5 sockets]#make

[root@redhat5 sockets]#make install

执行完make install屏幕上会提示sockets.so存放的路径,然后把它复制到php的extensions目录中,例如我的路径为 /home/webserver/php5.2.12/lib/php/extensions

3、修改php.ini文件

找到extension_dir = "./" 这行,修改为:

extension_dir = "/home/webserver/php5.2.12/lib/php/extensions/"

然后再新增加一行:

extension=sockets.so

4、重启apache即可生效。

很简单吧,其实你和我一样多在后盾人看看教学视频时间长了就明白了

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

使用php的常见问题是:编译php时忘记添加某扩展,后来想添加扩展,但是因为安装php后又装了一些东西如PEAR等,不想删除目录重装,别说,php还真有这样的功能。

我没有在手册中看到。

如我想增加bcmath支持,这是一个支持大整数计算的扩展。windows自带而且内置,linux本类函数仅在

PHP

编译时配置了

--enable-bcmath

时可用(引号内是手册中的话)

幸好有phpize,

方法是,要有与现有php完全相同的php压缩包。我用的是php-5.2.6.tar.gz。

展开后进入里面的ext/bcmath目录

然后执行/usr/local/php/bin/phpize,这是一个可执行的文本文件,要确保它在系统中

会发现当前目录下多了一些configure文件,

如果没报错,则

Php代码

./configure

--with-php-config=/usr/local/php/bin/php-config

如果你的php安装路径不是默认的,要改。

如果没有报错,则make,再make

install

,然后它告诉你一个目录

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

修改php.ini,在最后添加一句extension=bcmath.so

重启apache.