Centos下,PHP有多种方式来安装拓展, 主要有包管理式的yum安装、pecl安装、以及底层的源码编译安装。
yum方式安装能自动安装拓展的.so动态库,并配置好php.ini
#搜索phpreid扩展
yum search phpredis | grep php
yum install php72w-pecl-redis
重启php-fpm
systemctl restart php-fpm
# 我们需要先从pear官网下载 go-pear 工具
# 这个工具将帮我们同时安装 pecl包管理器(管理php的C拓展) pear包管理器(管理php类库)
wget http://pear.php.net/go-pear.phar
# 安装工具
# 安装过程除非特别指定,否则默认将工具安装到 /home/用户名/pear/bin 目录下
php go-pear.phar
# 将工具目录添加到环境变量中
# 编辑/etc/profile 追加一行配置
export PATH=$PATH:/home/用户名/pear/bin
# 加载环境配置
source /etc/profile
# 配置工具的php_ini选项,这样安装拓展时pecl工具就能帮我们自动配置php.ini文件了
# vim /home/用户名/pear/share/pear/PEAR/Config.php
# 搜索php_ini, default键修改为你的php.ini文件路径:
'php_ini' => array(
'type' => 'file',
'default' => '/etc/php.ini',
'doc' => 'location of php.ini in which to enable PECL extensions on install',
'prompt' => 'php.ini location',
'group' => 'File Locations (Advanced)',
),
#确认一下,配置起效
pecl config-get php_ini #配置成功将显示 /etc/php.ini
# 搜索mysql拓展
pecl search mysql
# 这时一般会提示我们更新工具, 则我们依据提示进行更新
sudo pecl channel-update pecl.php.net
# 再次搜索mysql拓展, 成功
pecl search mysql
# 安装拓展
pecl install mysql
git clone https://github.com/phpredis/phpredis.git # 下载phpredis源码(这个版本是2.2.5)
cd phpredis/
phpize的绝对路径 //可以通过whereis phpize查看
./configure --with-php-config=/usr/bin/php-config //php-config的绝对路径应该和phpize的绝对路径一致
make & make install
vim打开php.ini添加如下代码
[redis]
extension = redis.so
重启web服务器和php-fpm即可
通过网页产看扩展是否安装成功
或者通过命令查看
php -i | grep mysql
php --ri redis
最开始我装的是redis2.2.5版本,最后发现有的php redis接口没法用,比如下面这段代码,可以lpush数据,但是没法lrange得到数据。
connect('127.0.0.1', 6379);
//存储数据到列表中
$redis->lpush("tutorial-list", "Redis");
$redis->lpush("tutorial-list", "Mongodb");
$redis->lpush("tutorial-list", "Mysql");
// 获取存储的数据并输出
$arList = $redis->lrange("tutorial-list", 0 ,5);
print_r($arList);
$redis->set('aa',1);
echo $redis->get('aa');
下载地址: http://pecl.php.net/package/redis
获取包:wget -c http://pecl.php.net/get/redis-4.2.0.tgz
先不急着解压,首先要去把旧的redis.so文件删除,否则更新无法成功。
php扩展目录:在目录/usr/local/php/lib/php/extensions/下,有一个目录,每个人的不同,进入到这个目录就会看到自己所有安装的扩展。先把之前的redis.so备份:mv redis.so redis.so.bak。
然后回到redis-4.2.0.tgz所在目录解压
tar -zvxf redis-4.2.0.tgz
生成configure配置文件,下面命令是phpize所在目录,可以通过whereis phpize查看。
phpize的命令主要是用来侦测环境的(phpize工具是在php安装目录下,基于这点phpize对应了当时的php环境,所以要根据该php的配置情况生成对应的configure文件)建立一个configure文件,必须在一个目录下去运行phpize,那么phpize就知道你的环境是那个目录,并且configure文件建立在该目录下。
/usr/local/php/bin/phpize
配置,具体配置参数可以通过./configure --help查看
./configure --with-php-config=/usr/local/php/bin/php-config
编译安装
make && make install
由于之前已经安装过redis扩展,因此就不需要再次去php.ini中加载redis扩展了
查看扩展
php -m
也可以去浏览器中查看,执行如下代码