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:
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
##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
<code>extension=redis.so </code>
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:
$ 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 --with-redis
$ make
$ sudo cp modules/redis.so /usr/lib64/php5.6/modules/
<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!