Home >Database >Redis >How to solve the problem that php5.6 cannot extend redis.so

How to solve the problem that php5.6 cannot extend redis.so

WBOY
WBOYforward
2023-05-30 10:21:441343browse

First, let us understand what Redis is. Redis is a high-performance key-value storage database that can be used to store, read, and operate various types of data, such as strings, hash tables, lists, sets, and ordered sets, etc. It mainly uses memory as the storage medium, making Redis very fast and efficient.

To interact with Redis, you can extend the functionality of PHP by installing the redis.so extension or the phpredis extension. Developers can easily access Redis in PHP code because these extensions provide various API functions. But in some PHP versions, especially in php5.6, there are some problems that prevent these extensions from working properly.

If you use the php5.6 version and try to install and use the phpredis extension or directly extend redis.so, you may encounter the following error message:

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

This error message means that you The PHP version does not include the igbinary extension, which is a dependency of the phpredis extension. Using the igbinary extension can accelerate the access speed and performance of Redis, which can implement PHP serialization and deserialization.

To solve this problem, you need to install the igbinary extension first, and then install the phpredis extension or extend redis.so. Here are the specific steps:

  1. Install the igbinary extension
    Download and compile the igbinary extension, and then install it into your PHP extensions directory. You can download igbinary from GitHub:


    $ git clone https://github.com/igbinary/igbinary.git
    $ cd igbinary
    $ phpize
    $ ./configure
    $ make
    $ sudo make install
    


    After completing the above steps, you need to copy the igbinary.so file to the PHP extension directory , and add the following lines in the php.ini file:


    extension=igbinary.so
    


  2. ##Install phpredis extensionDownload and compile the phpredis extension, then install it into your PHP extensions directory. You can download phpredis from GitHub:


    $ git clone https://github.com/phpredis/phpredis.git
    $ cd phpredis
    $ phpize
    $ ./configure
    $ make
    $ sudo make install
    


    Then, add the following lines to the php.ini file:

    <code>extension=redis.so
    </code>


  3. Extend redis.soIf you don’t want to use phpredis extension, but want to extend redis.so directly , then you need to compile the PHP source code and enable the Redis extension. The following are the specific steps:

First, download the PHP source code and unzip it:

$ 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

Then, enable the Redis extension in the ./configure command:

$ ./configure --with-redis

Next, use the make command to compile the PHP source code:

$ make

After completing the compilation, copy the redis.so file to the PHP extension directory:

$ sudo cp modules/redis.so /usr/lib64/php5.6/modules/

Finally, in the php.ini file Add the following lines:

<pre class="brush:php;toolbar:false">extension=redis.so</pre><code>

The above is the detailed content of How to solve the problem that php5.6 cannot extend redis.so. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:yisu.com. If there is any infringement, please contact admin@php.cn delete