安装phpredis扩展

时间:2022-03-15 17:17:26

本文是根据菜鸟教程中的内容而写的,因为按照教程中做法来操作,中间遇到一些问题,我在centos6.5和ubuntu16.4中都遇到了,所以写在这里。强烈建议你先看完这篇博客,然后再操作,能省不少事。

首先推荐安装最新的扩展,去github中下载:https://github.com/phpredis/phpredis/releases,我下载的版本是3.1.6。下载完毕之后,完整操作如下:因为安装扩展要使用root权限,所以请使用su切换到root用户,多次使用sudo比较麻烦。

现在我已经下载好扩展压缩包了:

root@ubuntu:# cd /Downloads
root@ubuntu:/Downloads# tar -xzf phpredis-3.1.6.tar.gz
root@ubuntu:/Downloads# cd phpredis-3.1.6
root@ubuntu:/Downloads/phpredis-3.1.6# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version: 20131106
Zend Module Api No: 20131226
root@ubuntu:/Downloads/phpredis-3.1.6# ./configure --with-php-config=/usr/local/php/bin/php-config
##
##一些列的检测
##

  然后运行下面命令:

root@ubuntu:/Downloads/phpredis-3.1.6# make && make install
+-----------------------------------------------------------+
| ! ERROR ! |
| The test-suite requires that proc_open() is available. |
| Please check if you disabled it in php.ini. |
+-----------------------------------------------------------+

  出现如上错误,根据错误提示,需要更改php.ini配置文件,将proc_open()开启,所以执行:

root@ubuntu:/Downloads/phpredis-3.1.6# vi /usr/local/php/etc/php.ini
#使用vi编辑器的查找/proc_open,发现它在disable_function中,将其proc_open删除,然后保存退出
#再次运行make test

  但是一运行make test,仍旧会报错:

root@ubuntu:/Downloads/phpredis-3.1.6# make test
......
PHP Warning: shell_exec() has been disabled for security reasons in /Downloads/phpredis-3.1.6/run-tests.php
PHP Warning: shell_exec() has been disabled for security reasons in /Downloads/phpredis-3.1.6/run-tests.php
PHP Warning: shell_exec() has been disabled for security reasons in /Downloads/phpredis-3.1.6/run-tests.php
.....

  和上面一次一样,编辑php.ini,开启shell_exec,及将其从disable_function中删除
  然后再次运行make test

root@ubuntu:/Downloads/phpredis-3.1.6# vi /usr/local/php/etc/php.ini
root@ubuntu:/Downloads/phpredis-3.1.6# make test

  然后这次没有报错了,证明扩展安装成功了
  接下来,依旧修改php.ini,因为现在只是将redis扩展安装了,但是没有开启,仍旧不能使用。
  在修改php.ini之前,请先执行下面的命令

root@ubuntu:/Downloads/phpredis-3.1.6# ls /usr/local/php/lib/php/extensions/
no-debug-non-zts-20131226
root@ubuntu:/Downloads/phpredis-3.1.6#

  注意上面的no-debug-non-zts-20131226
  请将这个目录的名称复制一遍,然后打开php.ini,添加如下两行

extension_dir='/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226'
extension=redis.so

  注意上面第一条的末尾的文件夹就是上一条命令ls的结果,保存退出,接下来就是测试时间了。先关闭php服务,不用重启apache

root@ubuntu:/Downloads/phpredis-3.1.6# ps -A | grep php
###
###这里是很多php或者php-fpm的程序
###
root@ubuntu:/Downloads/phpredis-3.1.6# killall php-fpm
root@ubuntu:/Downloads/phpredis-3.1.6# ps -A | grep php
root@ubuntu:/Downloads/phpredis-3.1.6#

  然后执行下面这个命令,然后可以直接通过本地10000端口进行访问php程序。

@ubuntu:/Downloads/phpredis-3.1.6# cd ~
root@ubuntu:~# echo "<?php phpinfo();?>" > index.php
root@ubuntu:~# php -S localhost:10000
PHP 5.6.31 Development Server started at Mon Jan 15 23:04:33 2018
Listening on http://localhost:10000
Document root is /root
Press Ctrl-C to quit.

  然后使用浏览器访问localhost:10000就可以查看phpinfo了,

安装phpredis扩展

看到这里,你可以根据这个完整的流程,实现解决一些问题,省时省事!