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
Release: 2023-05-30 10:21:44
forward
1353 people have browsed it

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
Copy after login

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
    
    Copy after login


    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
    
    Copy after login


  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
    
    Copy after login


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

    <code>extension=redis.so
    </code>
    Copy after login


  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
Copy after login

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

$ ./configure --with-redis
Copy after login

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

$ make
Copy after login

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

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

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

<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">extension=redis.so</pre><div class="contentsignin">Copy after login</div></div><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!

Related labels:
source:yisu.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template