php不从新编译添加模块 php不从新编译添加模块

php如何使用第三方软件

本例是: php(mysql_connect()函数)使用mysql(第三方软件). 
 
观察上图,php能使用大量的第三方非php库(典型性是C语言写库), 为了达到此目的,你必须具有两个条件: 
Shell代码
  1. 条件I.  安装第三方库(软件)   
  2. 条件II. 安装了该软件的php扩展  
若是只是安装mysql,知足条件I,可是条件II不知足, 为了知足条件二, 咱们须要了解php安装扩展的知识. 
安装php, 大的方面还能够分为两种方式: 
引用
方式1. 将扩展编译到php 
方式2. 将扩展单独编译成动态链接库so文件

方式1的优势是运行速度快,可是为了一个扩展须要从新安装整个php;方式2灵活,可是运行速度稍慢. windows平台下的php程序员大多只熟悉方式2,由于方式2是windows下安装Php扩展的惟一方式. 

以前若是安装了php, 若是没有删除php源码目录,从新进入该目录, 那么此时从新编译运行将 采用增量方式 ,实际上比方式2还更方便些.仍然3步走: 
Shell代码
  1. ./configure --prefix=/my/php --with-mysql   
  2. make   
  3. 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模块为例子 php

进入源码目次 mysql

cd php-5.2.8/ext/ftp
#运行phpize configure
程序员

/usr/local/php/bin/phpize sql

#编译,指定php-config,留意这里的php-config,不是php.ini apache

./configure --with-php-config='/usr/local/php/bin/php-config'
#上面能够添加--enable-ftp,也能够不消添加
windows

#编译安装     
(留意:假如以前有过添加其余模块确定 要先 make clean ,否则 编译报错。)
函数

make && make install spa

#生成一个目录来存放扩展的模块 debug

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 再用/usr/local/php/bin/php -m|grep ftp查察 是否有ftp.so

相关文章
相关标签/搜索