PHP安装扩展的方式分为三种:
- 软件源安装、如果说运行环境是用yum | apt-get 安装的php可以在用此命令安装扩展
- 通过pecl安装。pecl是php的扩展命令。如果安装成功php后自带pecl install <扩展名>
- 如果php运行环境、禁用了一些函数popen。pecl可能下载不了。那么需要从官网下载到本地安装
本地安装扩展的方式
下面以redis进行举例
现去http://pecl.php.net/php官方扩展库去下载个redis包
也可以直接 wget http://pecl.php.net/get/redis-3.1.2.tgz
命令步骤
tar -xvf redis-3.1.2.tgz
cd redis-3.1.2
phpize
#因为我的php bin目录已经写到系统环境里面了
#所以进入目录下可以直接执行 不然的话前面是/usr/local/php/bin/phpize
因为官方扩展是没有configure文件,所以要用phpize命令生产一下。
phpize是什么东西呢?
php官方的说明:
http://php.net/manual/en/install.pecl.phpize.php
phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块。
比如你想在原来编译好的php中加入memcached或者ImageMagick等扩展模块,可以使用phpize,通过以下几步工作。
如何使用phpize?
当php编译完成后,php的bin目录下会有phpize这个脚本文件。在编译你要添加的扩展模块之前,执行以下phpize就可以了;
下面接着安装
./configure –with-php-config=/usr/local/php/bin/php-config
make && make install
如果phpize在环境变量中已经设置 那么可以省略 –with-php-config参数
上面的操作完成后,会在/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303目录下生成出一个redis.so文件,下面我们需要把这个so文件加到php.ini中,如果你不重新指定扩展文件目录,可以不用再php.ini加
extension_dir="/usr/local/php/lib/php/extensions/no-debug-non-zts-XXXXXX/"
,这一条。
然后在php.ini末尾加入即可
;extension_dir="/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/"
extension=redis.so