web-dev-qa-db-ja.com

phpredisをUbuntu14.04にインストールするPHP 7.1

私の_php -v_

PHP 7.1.15-1 + ubuntu14.04.1 + deb.sury.org + 2(cli)(ビルド:2018年3月6日11:51:39)(NTS)Copyright(c)1997-2018 The PHP Group Zend Engine v3.1.0、Copyright(c)1998-2018 Zend Technologies with Xdebug v2.6.0、Copyright(c)2002-2018、by Derick Rethans with Zend OPcache v7.1.15-1 + ubuntu14.04.1 + deb.sury.org + 2、Copyright(c)1999-2018、by 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
_

組み込みの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
_

インストールされ、起動エラーは表示されませんが、Webページにはまだ表示されます

クラス「Redis」が見つかりません

私が気付いたもう1つのことは、Apacheではエラーがなく、クラスが見つかったことです。しかし、phpの組み込みWebサーバーを実行すると、notfoundエラーが表示されます。

5
Michael

さて、phpinfoが表示されていることに気づきました

PHP API 20160303

これは、以前のエラーが理にかなっていることを意味します。 PHP Webサーバーのバージョンは7.1ですが、phpredis phpizeを実行すると、7.2のバージョンが表示されます。

そのため、php7.2-devを削除し、apt-getを介してphp7.1を再インストールしてから、上記のgithubリポジトリの手順を再実行するようにしました。

0
Michael

次のようなppaパッケージを使用してこれをインストールする必要がありますか?

Sudo apt-get install php7.1-redis
7
alvaropaco