安装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,你可以访问这里了解)
如果报错:Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable is set correctly and then rerun this script.“,需要安装autoconf:
yum install autoconf(RedHat或者CentOS)、apt-get install autoconf(Ubuntu Linux)
编译完成,如果早前编译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