【问题标题】:Installing phpredis on Ubuntu 14.04 for PHP 7.1在 Ubuntu 14.04 上为 PHP 7.1 安装 phpredis
【发布时间】:2018-09-11 21:43:49
【问题描述】:

我的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 The PHP Group Zend Engine 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

我确定放了

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

当我运行echo phpinfo();时进入php.ini文件

例如

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

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

PHP 警告:PHP 启动:无法加载动态库 '/usr/lib/php/20170718/redis.so' - /usr/lib/php/20170718/redis.so: 未定义符号:第 0 行 Unknown 中的 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

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

找不到类“Redis”

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

【问题讨论】:

    标签: php redis ubuntu-14.04 phpredis


    【解决方案1】:

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

    sudo apt-get install php7.1-redis
    

    【讨论】:

    • 为答案喝彩,这很重要,但我需要先删除 7.2。
    • 对于初学者,您可以将php7.1更改为您的php版本。
    【解决方案2】:

    好的,我注意到 phpinfo 显示了

    PHP API 20160303

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

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

    【讨论】:

      猜你喜欢
      • 2017-01-30
      • 2019-03-28
      • 2016-04-03
      • 2014-07-24
      • 2015-01-30
      • 2014-12-29
      • 2014-11-22
      • 2017-05-21
      • 1970-01-01
      相关资源
      最近更新 更多