添加php扩展 此博文包含图片(2014-04-24 16:22:49)

来源:互联网 发布:招聘软件排名 编辑:程序博客网 时间:2024/06/05 15:01

添加php扩展

 (2014-04-24 16:22:49)
转载
  
如何添加php extension:(背景:php安装时没有加curl支持)

==========> 
(
这里编译安装了curl 
./configure --with-php-config=/usr/local/php/bin/php-config
)

参考: http://www.cnblogs.com/jinrize/archive/2009/10/26/1590205.html
http://www.itokit.com/2012/0609/74358.html

linux 中 php如何安装扩展


如果php已经在系统编译好,后来又需要添加新的扩展。一种方式就是重新完全编译php,另一种方式就是单独编译扩展库,以extension的形式扩展。下面以安装curl扩展为例:

1、下载curl安装包。(我的php是4.4.4的,下载最新的curl 7.16 不能使用,最后下载7.14的才可以,所以要注意一下版本问题)

./configure
make
php 要求curl的目录要有include和lib目录,并且include下要有easy.h 和curl.h两个文件,lib下要有libcurl.a。经编译后include下的文件有了,但是lib目录下没有。原来生成到lib/.libs目录下,所以要copy到lib目录
2、进入安装原php的源码目录,

cd ext
cd curl
自己路径的phpize
./configure --with-curl=DIR
make
就会在PHPDIR/ext/curl/moudles/下生成curl.so的文件。

3、复制curl.so文件到extensions的配置目录,修改php.ini就好了 



假如原先编译的php目录在/usr/local/php5目录下;
apache在/usr/local/apache2目录下;
php源代码在/home/kevin125/src目录下。

如果实际目录与假定的目录不一致,则在下面的命令中做调整。

1. 找到当前运行的php版本的源代码目录,如 php-5.2.10。

进入curl扩展库目录。
$cd /home/kevin125/src/php-5.2.10/ext/curl

2. 调用phpize程序生成编译配置文件。
$/usr/local/php5/bin/phpize

3. 编译扩展库,分别执行下面的configure和make命令。
$./configure –with-php-config=/usr/local/php5/bin/php-config

configure这一步执行通过后,再执行make命令,如果configure执行不通过,则查找错误原因。
$make

make成功执行后,生成的扩展库文件在当前目录的 modules 子目录下,如 /home/kevin125/src/php-5.2.10/ext/curl/modules/curl.so

4. 配置php.ini文件
将编译好的扩展库文件复制到apache2 modules目录下。
$cp /home/kevin125/src/php-5.2.10/ext/curl/modules/curl.so /usr/local/apache2/modules/

找到php.ini文件所在目录位置,然后编辑。可以通过查看phpinfo信息来确定php.ini文件位置。
在php.ini文件中找到设置扩展目录的位置,然后将扩展路径设置到apache2 modules目录下
extension_dir = “/usr/local/apache2/modules/”

在php.ini的设置扩展库位置,设置要添加的扩展库。
extension=curl.so

以后如果还要添加别的扩展库的话,则只需先将php扩展库编译好,然后copy到apache2 modules目录下,
然后再在这个位置,另取一行将编译后的扩展库文件名加上即可

5. 重启apache,查看phpinfo信息,即可看到刚才添加进去的curl扩展库。

添加其他模块类似。

\




==========>
php.ini 在安装目录不存在, 从源目录中拷贝php.ini-recommended这一类似的文件到指定文件路径即可,php.ini的指定路径可通过apache访问phpinfo.php查看到。
由于版本更新
php.ini-production 对应于 php.ini-recommended
php.ini-development 对应于 php.ini-dist
(tip)
 php 怎么从当前目录dl一个so ? 
 php -d extension_dir=. -d enable_dl='on' xxx.php

0 0