PHP

php不重新编译添加模块

php如何使用第三方软件

本例是: php(mysql_connect()函数)使用mysql(第三方软件). [attach]338[/attach] 观察上图,php能使用大量的第三方非php库(典型性是C语言写库), 为了达到此目的,你必须具备两个条件:
条件I. 安装第三方库(软件) 
条件II. 安装了该软件的php扩展
如果只是安装mysql,满足条件I,但是条件II不满足, 为了满足条件二, 我们需要了解php安装扩展的知识. 安装php, 大的方面还可以分为两种方式:
方式1. 将扩展编译到php 
方式2. 将扩展单独编译成动态连接库so文件 
 
方式1的优点是运行速度快,但是为了一个扩展需要重新安装整个php
方式2灵活,但是运行速度稍慢. 
windows平台下的php程序员大多只熟悉方式2,因为方式2是windows下安装Php扩展的唯一方式.
之前如果安装了php, 如果没有删除php源码目录,重新进入该目录, 那么此时重新编译运行将采用增量方式,实际上比方式2还更方便些,永远的三步曲:
./configure --prefix=/usr/local/php --with-mysql 
make 
make install
有人质疑: 我安装mysql sdk,./configure命令一个–with-mysql就知道我安装的目录,还是有点神奇,难道他全硬盘搜索.h文件? 不是, 如果你用yum方式安装sdk,那么LD_LIBRARY_PATH系统变量就指示了该sdk相关信息 ,如果你使用源码(tar)安装mysql sdk,你的–with-mysql参数不得不像这样: –with-mysql=/your_mysql_sdk_dir/ 来指定了。   方式2: 以添加ftp模块为例子:
进入源码目录
#cd php-5.2.8/ext/ftp
运行phpize configure
#/usr/local/php/bin/phpize
编译,指定php-config,留意这里的php-config,不是php.ini
#./configure --with-php-config='/usr/local/php/bin/php-config'
#上面可以添加--enable-ftp,也可以不添加
编译安装 
(留意:假如之前有过添加其他模块肯定 要先 make clean ,不然 编译报错。)
#make && make install
生成一个目录来存放扩展的模块
#mkdir /usr/local/php/etc/php/ext
复制ftp.so到模块目次
#cp /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/ftp.so /usr/local/php/etc/ext/
编辑 php.ini文件,指定PHP到哪个目次读模块
#vi /usr/local/php/etc/php.ini
#extension_dir="/usr/local/php/etc/ext"
Load模块
#extension=ftp.so
#保存退出
 
重启apache,或者其他web服务器
再用/usr/local/php/bin/php -m|grep ftp #验证是否有ftp.so

0 个评论

要回复文章请先登录注册