在Ubuntu 14.04上为PHP 7.1安装phpredis

6

我的 php -v

PHP 7.1.15-1+ubuntu14.04.1+deb.sury.org+2 (cli) (built: Mar 6 2018 11:51:39) ( NTS ) 版权所有 (c) 1997-2018 PHP Group Zend 引擎 v3.1.0,版权所有 (c) 1998-2018 Zend Technologies 使用 Xdebug v2.6.0,版权所有 (c) 2002-2018 Derick Rethans 使用 Zend OPcache v7.1.15-1+ubuntu14.04.1+deb.sury.org+2,版权所有 (c) 1999-2018 Zend Technologies

我已经尝试了 pecl 的方法。

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

还有一种手动的方式,可以从https://github.com/phpredis/phpredis获取。

phpize
./configure [--enable-redis-igbinary]
make && make install

我确保放置了 <\p> 标签。
extension=/usr/lib/php/20170718/redis.so

当我运行echo phpinfo();时,将内容添加到php.ini文件中,如下所示。
例如:
/etc/php/7.1/cli/php.ini

当我运行内置的Web服务器时,我会遇到以下问题:

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

奇怪的是,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

安装了Redis扩展之后,虽然没有启动错误显示,但是网页仍然显示一个

Class 'Redis' not found

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

2个回答

21

您可能只需要使用类似于 ppa 包的方式安装它:

sudo apt-get install php7.1-redis

1
感谢您的回答,这很重要,但我需要先删除7.2。 - Michael Millar
1
对于初学者来说,你可以将php7.1替换为你的php版本。 - Akram Chauhan

1

好的,我注意到phpinfo显示了

PHP API 20160303

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

因此,我确保删除了php7.2-dev并通过apt-get重新安装了php7.1,然后重新运行上述github repo步骤。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接