Heim  >  Fragen und Antworten  >  Hauptteil

Ich kann über PHP keine Verbindung zu Redis herstellen

<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>
P粉465287592P粉465287592384 Tage vor587

Antworte allen(2)Ich werde antworten

  • P粉116631591

    P粉1166315912023-09-02 13:24:21

    1. 检查 radish 是否作为一个团队工作redis-cli ping 回答乒乓

    2. 确保您的 PHP 配置包含 Redis 扩展的正确设置。检查php.ini文件是否指定了redis.so的正确路径以及其他必要的配置。

    Antwort
    0
  • P粉920199761

    P粉9201997612023-09-02 12:09:25

    我已将 Php.ini 文件调整如下。
    调整前

    session.save_path = "tcp://localhost:6379"

    调整后

    session.save_path = "tcp://redis:6379"

    谢谢。

    Antwort
    0
  • StornierenAntwort