php7 安装redis拓展
配置之前应该是环境已经搭好了,phpinfo的页面可以加载出来。
-
使用git clone下载git上的phpredis扩展包
git clone https://github.com/phpredis/phpredis.git
-
通过phpize,生成configure配置文件
whereis phpize
phpize: /usr/bin/phpize /usr/share/man/man1/phpize.1.gz
路径为:/usr/bin/phpize
ps : 进入phpredis的安装路径
whereis phpredis
[root@instance-2 php.d]# whereis phpredis
phpredis: /usr/local/lib/phpredis
在phpredis的安装目录中执行:/usr/bin/phpize
- 执行完成后,配置
./configure
报错:
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for a sed that does not truncate output... /usr/bin/sed
checking for cc... no
checking for gcc... no
configure: error: in `/usr/local/lib/phpredis':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
4.安装gcc
[root@instance-2 phpredis]# yum -y install gcc
成功后:
[root@instance-2 phpredis]# ./configure
[root@instance-2 phpredis]# make
[root@instance-2 phpredis]# make install
Installing shared extensions: /usr/lib64/php/modules/
5.修改php.ini配置
[root@instance-2 phpredis]# whereis php.ini
php: /usr/bin/php /usr/lib64/php /etc/php.d /etc/php.ini /usr/include/php /usr/share/php /usr/share/man/man1/php.1.gz
[root@instance-2 phpredis]# vim /etc/php.ini
增加一下几行:
[redis]
extension_dir ="/usr/lib64/php/modules"
extension = redis.so
6.此步重启nginx之后,phpinfo()查看,还是没有redis拓展模块;回到命令行,检查php拓展模块情况:
php -m 或者 制定php版本 [root@instance-2 etc]# /usr/bin/php -m
[root@instance-2 etc]# /usr/bin/php -m
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/redis.so' - /usr/lib64/php/modules/redis.so: undefined symbol: json_globals in Unknown on line 0
[PHP Modules]
bz2
calendar
Core
ctype
curl
date
exif
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
json
ldap
libxml
mbstring
mcrypt
mysqli
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
readline
Reflection
session
shmop
SimpleXML
sockets
SPL
sqlite3
standard
tokenizer
xml
Zend OPcache
zip
zlib
[Zend Modules]
Zend OPcache
PS:参考链接
【2】网上找到两种解决方法,
1.先删除php-pecl-redis,再用pecl install redis
2.安装php-igbinary模块,不过我安装时包冲突了,没有安装成功,所以用了第一种方法
- phpredis编译出来的redis.so也需要拷贝到"/usr/lib64/php/modules/"中
- "/etc/php.d/"中也要软连接redis.so,并且要创建一个redis.ini文件,内容如下:
$ cat /etc/php.d/redis.ini ; Enable redis extension module extension=redis.so
vim /etc/php.d/redis.ini
内容如下:
; Enable redis extension module extension=redis.so
重启:
systemctl restart nginx
安装完成: