我的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服务器时,会出现未找到的错误。
答案 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步骤。