web-dev-qa-db-ja.com

phpredis拡張機能が機能せず、「redis.so」を読み込めません

Yumでnginx、php、php-fpm、php-pecl-redisをインストールしました。

それらはすべて機能しますが、最後のものです。

/usr/sbin/php-fpmを実行すると、次のようになります。

PHP警告:PHP起動:ダイナミックライブラリを読み込めません '/usr/lib/php/modules/redis.so'-/usr/lib/php/modules/redis.so:未定義のシンボル:0行目の不明のigbinary_unserialize

igbnary_unserializeの意味と、それを修正する方法がわかりません。

正しいパスの下にあるredis.soファイルを確認しました。 extension=redis.sophp.iniに追加します

PHPバージョン:5.3.3

PhpRedisバージョン:2.2.7

10
pearzl

私も同じ問題を抱えていました。私はUbuntu16.04LTSを使用しています。ランニング Sudo apt-get install php-igbinary私のために問題を解決しました。私には他の問題がありますが、それがこれを解決したものです。

22
Matt Setter

おそらくigbinaryの問題ですが、これはインストールされていますか? (例を試してください:cat /etc/php.d/igbinary.ini)。

ここで見つけてインストールできます igbinary

1
Bob van Luijt

このバグに関連する https://bugs.launchpad.net/ubuntu/+source/php-redis/+bug/1762935

パッケージからphp-redisを削除する必要があります:apt purge php-redis、そしてpecl install redisを介してインストールします

Php.iniに「extension = redis.so」を追加する必要があります

phpディレクトリのconfig.dからredisを削除します。

rm /etc/php/7.2/fpm/conf.d/@20-redis.ini

そして

rm /etc/php/7.2/cli/conf.d/@20-redis.ini

php fpmを再起動すると、問題が解決したことがわかります

1
James M

同じ問題を解決するだけです。

yumによってインストールされたphp-pecl-redisがこの問題を引き起こします。したがって、php-redisを手動でインストールする必要があります。パッケージをwgetし、phpize --configure --make..。

0
Sylar Li