Lassen Sie uns zunächst verstehen, was Redis ist. Redis ist eine leistungsstarke Schlüsselwertspeicherdatenbank, die zum Speichern, Lesen und Bearbeiten verschiedener Datentypen wie Zeichenfolgen, Hash-Tabellen, Listen, Mengen und geordnete Mengen usw. verwendet werden kann. Es verwendet hauptsächlich Speicher als Speichermedium, was Redis sehr schnell und effizient macht.
Um mit Redis zu interagieren, können Sie die Funktionalität von PHP erweitern, indem Sie die Erweiterung redis.so oder die Erweiterung phpredis installieren. Entwickler können im PHP-Code problemlos auf Redis zugreifen, da diese Erweiterungen verschiedene API-Funktionen bereitstellen. Aber in einigen PHP-Versionen, insbesondere in php5.6, gibt es einige Probleme, die die ordnungsgemäße Funktion dieser Erweiterungen verhindern.
Wenn Sie die PHP5.6-Version verwenden und versuchen, die phpredis-Erweiterung zu installieren und zu verwenden oder redis.so direkt zu erweitern, wird möglicherweise die folgende Fehlermeldung angezeigt:
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
Diese Fehlermeldung bedeutet, dass Ihre PHP-Version die igbinary nicht enthält Erweiterung, Diese Erweiterung ist eine Abhängigkeit der PHPREDIS-Erweiterung. Die Verwendung der igbinary-Erweiterung kann die Zugriffsgeschwindigkeit und Leistung von Redis beschleunigen, das PHP-Serialisierung und -Deserialisierung implementieren kann.
Um dieses Problem zu lösen, müssen Sie zuerst die igbinary-Erweiterung und dann die phpredis-Erweiterung oder die Erweiterung redis.so installieren. Hier sind die spezifischen Schritte:
Installieren Sie die igbinary-Erweiterung.
Laden Sie die igbinary-Erweiterung herunter, kompilieren Sie sie und installieren Sie sie dann in Ihrem PHP-Erweiterungsverzeichnis. Sie können igbinary von GitHub herunterladen:
$ git clone https://github.com/igbinary/igbinary.git $ cd igbinary $ phpize $ ./configure $ make $ sudo make install
Nach Abschluss der obigen Schritte müssen Sie die Datei igbinary.so in das PHP-Erweiterungsverzeichnis kopieren und die folgenden Zeilen in die Datei php.ini einfügen:
extension=igbinary.so
Installieren Sie die PHPredis-Erweiterung.
Laden Sie die PHPREDIS-Erweiterung herunter, kompilieren Sie sie und installieren Sie sie dann in Ihrem PHP-Erweiterungsverzeichnis. Sie können phpredis von GitHub herunterladen:
$ git clone https://github.com/phpredis/phpredis.git $ cd phpredis $ phpize $ ./configure $ make $ sudo make install
Fügen Sie dann die folgende Zeile in die php.ini-Datei ein:
<code>extension=redis.so </code>
Extend redis.so
wenn du es nicht tust Wenn Sie die Erweiterung phpredis nicht verwenden und redis.so direkt erweitern möchten, müssen Sie den PHP-Quellcode kompilieren und die Erweiterung Redis aktivieren. Im Folgenden sind die spezifischen Schritte aufgeführt:
Laden Sie zunächst den PHP-Quellcode herunter und entpacken Sie ihn:
$ 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
Aktivieren Sie dann die Redis-Erweiterung im Befehl ./configure:
$ ./configure --with-redis
Als nächstes verwenden Sie den Befehl make, um den zu kompilieren PHP-Quellcode:
$ make
Kopieren Sie nach Abschluss der Kompilierung die Datei redis.so in das PHP-Erweiterungsverzeichnis:
$ sudo cp modules/redis.so /usr/lib64/php5.6/modules/
Fügen Sie abschließend die folgende Zeile in die Datei php.ini ein:
<code><pre class="brush:php;toolbar:false">extension=redis.so</pre>
Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem, dass PHP5.6 redis.so nicht erweitern kann. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!