AI编程助手
AI免费问答

我无法使用 php 连接到 redis

<p>我无法使用 php 连接到 redis。 我用docker搭建了一个环境,尝试用php和redis容器从php连接redis,但是失败了。我收到以下错误。</p> <pre class="brush:php;toolbar:false;">PHP Warning: PHP Startup: Unable to load dynamic library 'redis.so' (tried: /usr/lib/php/20190902/redis.so (/usr/lib/php/20190902/redis.so: undefined symbol: php_json_decode_ex), /usr/lib/php/20190902/redis.so.so (/usr/lib/php/20190902/redis.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 PHP Notice: session_start(): Redis not available while creating session_id in /var/www/html/index.php on line 2 PHP Warning: session_start(): Failed to read session data: redis (path: tcp://localhost:6379) in /var/www/html/index.php on line 2 string(0) &quot;&quot; save_handler=redis save_path=tcp://localhost:6379 session_id=</pre> <p>这是为响应错误而执行的 php 文件。</p> <pre class="brush:php;toolbar:false;">&lt;?php session_start(); ini_set('session.cookie-domain', 'localhost'); var_dump(session_id()); echo &quot;save_handler=&quot; . ini_get(&quot;session.save_handler&quot;) . &quot;\n&quot;; echo &quot;save_path=&quot; . ini_get(&quot;session.save_path&quot;) . &quot;\n&quot;; echo &quot;session_id=&quot; . session_id() . &quot;\n&quot;; $_SESSION['libname'] = &quot;PhpRedis&quot;; ?&gt;</pre> <p>php.ini 文件的一部分。</p> <pre class="brush:php;toolbar:false;">[Session] ; Handler used to store/retrieve data. ; http://php.net/session.save-handler session.save_handler = redis session.save_path = &quot;tcp://localhost:6379&quot; ;verifying redis extension module extension = redis.so ; default redis timeout redis.timeout = 5</pre> <p>如果我缺少解决此问题所需的任何信息,请告诉我。预先感谢您。</p> <p>附: 我输入 ping,它返回 pong。 我可以使用 redis-cli 从 php 容器连接到 redis。另外,这里是redis.so的路径。 <code>~/usr/lib/php/20190902/redis.so</code> php.ini 的路径(使用的服务器是 apache2)。 <code>~/etc/php/7.4/apache2/php.ini</code></p>
# PHP
P粉465287592 P粉465287592 669 天前 937 次浏览

全部回复(2) 我要回复

  • P粉116631591

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

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

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

    回复
    0
  • P粉920199761

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

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

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

    调整后

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

    谢谢。

    回复
    0
  • 取消 回复 发送