Ich kann über PHP keine Verbindung zu Redis herstellen
P粉465287592
2023-09-01 15:37:59
<p>Ich kann über PHP keine Verbindung zu Redis herstellen.
Ich habe eine Umgebung mit Docker eingerichtet und versucht, Redis von PHP aus mithilfe von PHP- und Redis-Containern zu verbinden, aber es ist fehlgeschlagen. Ich erhalte die folgende Fehlermeldung. </p>
<pre class="brush:php;toolbar:false;">PHP-Warnung: PHP-Start: Die dynamische Bibliothek „redis.so“ kann nicht geladen werden (versucht: /usr/lib/php/20190902/redis.so (/ usr/lib/php/20190902/redis.so: undefiniertes Symbol: php_json_decode_ex), /usr/lib/php/20190902/redis.so.so (/usr/lib/php/20190902/redis.so.so: kann nicht geöffnet werden freigegebene Objektdatei: Keine solche Datei oder kein solches Verzeichnis)) in Unbekannt in Zeile 0
PHP-Hinweis: session_start(): Redis ist beim Erstellen der session_id in /var/www/html/index.php in Zeile 2 nicht verfügbar
PHP-Warnung: session_start(): Sitzungsdaten konnten nicht gelesen werden: redis (Pfad: tcp://localhost:6379) in /var/www/html/index.php in Zeile 2
string(0) ""
save_handler=redis
save_path=tcp://localhost:6379
session_id=</pre>
<p>Dies ist die PHP-Datei, die als Reaktion auf den Fehler ausgeführt wird. </p>
<pre class="brush:php;toolbar:false;"><?php
session_start();
ini_set('session.cookie-domain', 'localhost');
var_dump(session_id());
echo "save_handler=" .
echo "save_path=" .
echo "session_id=" .
$_SESSION['libname'] = "PhpRedis";
?></pre>
<p>Teil der php.ini-Datei. </p>
<pre class="brush:php;toolbar:false;">[Sitzung]
; Handler zum Speichern/Abrufen von Daten.
; http://php.net/session.save-handler
session.save_handler = redis
session.save_path = "tcp://localhost:6379"
;Überprüfung des Redis-Erweiterungsmoduls
extension=redis.so
; Standard-Redis-Timeout
redis.timeout = 5</pre>
<p>Wenn mir Informationen fehlen, die zur Lösung dieses Problems erforderlich sind, teilen Sie mir dies bitte mit. Vielen Dank im Voraus. </p>
<p>Anhang:
Ich gebe „Ping“ ein und es wird „Pong“ zurückgegeben.
Ich kann mit redis-cli vom PHP-Container aus eine Verbindung zu Redis herstellen. Außerdem ist hier der Pfad zu redis.so.
<code>~/usr/lib/php/20190902/redis.so</code>
Der Pfad zu php.ini (der verwendete Server ist Apache2).
<code>~/etc/php/7.4/apache2/php.ini</code></p>
检查 radish 是否作为一个团队工作
redis-cli ping
回答乒乓
确保您的 PHP 配置包含 Redis 扩展的正确设置。检查
php.ini
文件是否指定了redis.so
的正确路径以及其他必要的配置。我已将 Php.ini 文件调整如下。
调整前
调整后
谢谢。