php不重新编译添加模块 php不重新编译添加模块
php如何使用第三方软件
本例是: php(mysql_connect()函数)使用mysql(第三方软件).
观察上图,php能使用大量的第三方非php库(典型性是C语言写库), 为了达到此目的,你必须具备两个条件:
Shell代码
- 条件I. 安装第三方库(软件)
- 条件II. 安装了该软件的php扩展
如果只是安装mysql,满足条件I,但是条件II不满足, 为了满足条件二, 我们需要了解php安装扩展的知识.
安装php, 大的方面还可以分为两种方式:
安装php, 大的方面还可以分为两种方式:
引用
方式1. 将扩展编译到php
方式2. 将扩展单独编译成动态连接库so文件
方式2. 将扩展单独编译成动态连接库so文件
方式1的优点是运行速度快,但是为了一个扩展需要重新安装整个php;方式2灵活,但是运行速度稍慢. windows平台下的php程序员大多只熟悉方式2,因为方式2是windows下安装Php扩展的唯一方式.
之前如果安装了php, 如果没有删除php源码目录,重新进入该目录, 那么此时重新编译运行将
采用增量方式
,实际上比方式2还更方便些.仍然3步走:
Shell代码
- ./configure --prefix=/my/php --with-mysql
- make
- make install
方式2:
以添加ftp模块为例子 进入源码目次 cd php-5.2.8/ext/ftp /usr/local/php/bin/phpize #编译,指定php-config,留意这里的php-config,不是php.ini ./configure --with-php-config='/usr/local/php/bin/php-config' #编译安装 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" 重启apache |