まず、Redis とは何かを理解しましょう。 Redis は、文字列、ハッシュ テーブル、リスト、セット、順序付きセットなど、さまざまな種類のデータの保存、読み取り、操作に使用できる高性能のキー/値ストレージ データベースです。主にメモリを記憶媒体として使用するため、Redis は非常に高速かつ効率的になります。
Redis と対話するには、redis.so 拡張機能または phpredis 拡張機能をインストールすることで、PHP の機能を拡張できます。これらの拡張機能はさまざまな API 関数を提供するため、開発者は PHP コードで Redis に簡単にアクセスできます。ただし、一部の PHP バージョン、特に php5.6 では、これらの拡張機能が適切に動作しない問題がいくつかあります。
php5.6 バージョンを使用し、phpredis 拡張機能をインストールして使用するか、redis.so を直接拡張しようとすると、次のエラー メッセージが表示される場合があります。
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php5.6/modules/redis.so' - /usr/lib64/php5.6/modules/redis.so: undefined symbol: igbinary_serialize in Unknown on line 0
このエラー メッセージは、次のことを意味します。 PHP バージョンには、phpredis 拡張機能の依存関係である igbinary 拡張機能が含まれていません。 igbinary 拡張機能を使用すると、PHP のシリアル化と逆シリアル化を実装できる Redis のアクセス速度とパフォーマンスを高速化できます。
この問題を解決するには、まず igbinary 拡張機能をインストールし、次に phpredis 拡張機能をインストールするか、redis.so を拡張する必要があります。具体的な手順は次のとおりです。
igbinary 拡張機能のインストール
igbinary 拡張機能をダウンロードしてコンパイルし、PHP 拡張機能ディレクトリにインストールします。 GitHub から igbinary をダウンロードできます:
$ git clone https://github.com/igbinary/igbinary.git $ cd igbinary $ phpize $ ./configure $ make $ sudo make install
上記の手順を完了したら、igbinary.so ファイルを PHP にコピーする必要があります。 extension directory に移動し、php.ini ファイルに次の行を追加します。
extension=igbinary.so
#phpredis をインストールするextension
phpredis 拡張機能をダウンロードしてコンパイルし、PHP 拡張機能ディレクトリにインストールします。 GitHub から phpredis をダウンロードできます:
$ git clone https://github.com/phpredis/phpredis.git $ cd phpredis $ phpize $ ./configure $ make $ sudo make install
次に、次の行を php.ini ファイルに追加します。
<code>extension=redis.so </code>
redis.so
phpredis 拡張機能を使用したくないが、拡張機能を使用したい場合は、 redis.so を直接拡張する場合は、PHP ソース コードをコンパイルし、Redis 拡張機能を有効にする必要があります。具体的な手順は次のとおりです。
まず、PHP ソース コードをダウンロードして解凍します。
$ wget http://cn2.php.net/distributions/php-5.6.40.tar.gz $ tar zxvf php-5.6.40.tar.gz $ cd php-5.6.40
次に、./configure コマンドで Redis 拡張機能を有効にします。
$ ./configure --with-redis
次に、make コマンドを使用して PHP ソース コードをコンパイルします:
$ make
コンパイルが完了したら、redis.so ファイルを PHP 拡張ディレクトリにコピーします:
$ sudo cp modules/redis.so /usr/lib64/php5.6/modules/
最後に、php.ini ファイルに次の行を追加します:
以上がphp5.6でredis.soが拡張できない問題の解決方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。extension=redis.so