在Ubuntu 14.04上为PHP 7.1安装phpredis

时间:2018-04-02 16:49:43

标签: php redis ubuntu-14.04 phpredis

我的php -v

  

PHP 7.1.15-1 + ubuntu14.04.1 + deb.sury.org + 2(cli)(建于:2018年3月6日)   11:51:39)(NTS)版权所有(c)1997-2018 PHP Group Zend Engine   v3.1.0,版权所有(c)1998-2018 Zend Technologies       与Derde Rethans的Xdebug v2.6.0,版权所有(c)2002-2018       与Zend OPcache v7.1.15-1 + ubuntu14.04.1 + deb.sury.org + 2,版权所有(c)1999-2018,作者:Zend Technologies

我尝试了两种方法

sudo pecl install redis
sudo service php7.1-fpm restart

来自https://github.com/phpredis/phpredis

的手动方式
phpize
./configure [--enable-redis-igbinary]
make && make install

我确保放

extension=/usr/lib/php/20170718/redis.so

进入php.ini文件,如运行echo phpinfo();

时所示

e.g。

/etc/php/7.1/cli/php.ini

当我运行内置的Web服务器时,我得到了

  

PHP警告:PHP启动:无法加载动态库   ' /usr/lib/php/20170718/redis.so' - /usr/lib/php/20170718/redis.so:   未定义的符号:第0行的未知中的zend_empty_string

奇怪的是,PHPStorm会自动填充PHP Redis类,所以

$redis = new \Redis();
$redis->connect('127.0.0.1', 6379);

我可以点击进入Redis类,看它是正确的。

我想知道它是否是版本差异?也许是因为我使用的是32位?

另一个奇怪的事情是,如果我只是把

extension=redis.so 

php.ini中,它似乎在寻找旧版本

  

PHP启动:无法加载动态库   ' /usr/lib/php/20160303/redis.so' - /usr/lib/php/20160303/redis.so:   无法打开共享对象文件:未知中没有此类文件或目录   在第0行

当我跑步时

sudo apt-get install php-redis

它安装并意味着没有显示启动错误,但网页仍显示

  

Class' Redis'找不到

我注意到的另一件事是,在Apache中,没有错误,并且找到了类。但是当我运行php的内置Web服务器时,会出现未找到的错误。

2 个答案:

答案 0 :(得分:5)

您可能需要使用ppa包安装它,如:

sudo apt-get install php7.1-redis

答案 1 :(得分:0)

好的,所以我注意到phpinfo显示了

  

PHP API 20160303

这意味着早期的错误是有道理的。 Web服务器的PHP版本是7.1,但是,当运行phpredis phpize时,它会显示7.2的版本。

所以我确保删除php7.2-dev并通过apt-get重新安装php7.1,然后重新运行上面的github repo步骤。