环境架设   /   177

php如何使用第三方软件

本例是: php(mysql_connect()函数)使用mysql(第三方软件).

php通过扩展建立与第三方软件的关系

观察上图,php能使用大量的第三方非php库(典型性是C语言写库), 为了达到此目的,你必须具备两个条件:

  • 条件01. 安装第三方库(软件)
  • 条件02. 安装了该软件的php扩展

如果只是安装mysql,满足条件01,但是条件02不满足, 为了满足条件02, 我们需要了解php安装扩展的知识.

  • 方式1. 将扩展编译到php
  • 方式2. 将扩展单独编译成动态连接库so文件

方式1的优点是运行速度快,但是为了一个扩展需要重新安装整个php;

方式2灵活,但是运行速度稍慢. windows平台下的php程序员大多只熟悉方式2,因为方式2是windows下安装Php扩展的唯一方式.

方式1. 将扩展编译到php

如果之前安装了php, 但是没有删除php源码目录,重新进入该目录, 那么此时重新编译运行将采用增量方式


./configure --prefix=/my/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. 将扩展单独编译成动态连接库so文件

#以添加 ftp 模块为例子

进入源码目录(ftp扩展的目录其实也是在解压后php源码中的/ext/目录,而其他的一些扩展比如suhosin ,eaccelerato等是有自己单独的源码包的)

cd php-5.2.8/ext/ftp

/usr/local/php/bin/phpize (#寻找你早前已经安装好的php目录,为的是运行phpize)

./configure --with-php-config='/usr/local/php/bin/php-config' (#寻找你早前已经安装好的php目录,为的是调用php-config)

make && make install


(#如果报错,可以先运行make clean,你可能之前添加过其他模块。关于make clean,你可以访问这里了解

编译完成,如果早前编译PHP的时候指定了配置文件的路径,如–with-config-file-path=/usr/local/php/etc ,那么编译完成后生成的so文件会出现在/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/目录中,名称为ftp.so 。(#至于是类似目录no-debug-non-zts-20060613还是类似目录no-debug-zts-20060613,也是取决于当初编译PHP时候的编译设置,请自行区分)

#编辑 php.ini文件,指定PHP到哪个目次读模块

vi /usr/local/php/etc/php.ini    (#php.ini文件的目录,取决于当初编译PHP时候的编译设置,请自行区分)

#添加模块:

[ftp]
extension = "ftp.so"

#然后重启apache

#最后查看phpinfo()是否已经载入ftp

网络发现者(aiwei.us)是梁道科技旗下以企业建站,微信开发,视觉设计为主要服务项目的互联网品牌。

我们为企业提供各类互联网平台项目的咨询顾问服务。依靠丰富的互联网实践经验,我们为企业从项目可行性分析,执行策略及方案等方方面面提供合理化建议。