私の_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エラーが表示されます。
さて、phpinfoが表示されていることに気づきました
PHP API 20160303
これは、以前のエラーが理にかなっていることを意味します。 PHP Webサーバーのバージョンは7.1ですが、phpredis phpizeを実行すると、7.2のバージョンが表示されます。
そのため、php7.2-devを削除し、apt-getを介してphp7.1を再インストールしてから、上記のgithubリポジトリの手順を再実行するようにしました。
次のようなppaパッケージを使用してこれをインストールする必要がありますか?
Sudo apt-get install php7.1-redis