找不到保存处理程序“redis”-Ubuntu

Xar*_*tre 2 php ubuntu lampp redis

我正在使用 PHP 5.6.23 在 ubuntu 上运行 LAMPP。

我决定将我的会话存储在 Redis 中并安装了它。我也安装了 Predis。

在网上搜索时,我将 php.ini 更改为:

session.save_handler = redis
session.save_path = "127.0.0.1:6379"
Run Code Online (Sandbox Code Playgroud)

但是当尝试创建一个会话时,我出现了这个错误:

Warning: session_start(): Cannot find save handler 'redis' - session startup failed in /path/to/the/Untitled.php
Run Code Online (Sandbox Code Playgroud)

你可以认为Redis有问题,但事实并非如此。它工作正常我可以设置一些东西,我可以用 Redis-CLI 检查它:

我的 redis 'set' PHP 代码是:

<?php

require "predis/autoload.php";
$redis = new Predis\Client([
    'scheme' => 'tcp',
    'host'   => '127.0.0.1',
    'port'   => 6379,
]);
$redis->set('x', '42');
$redis->set('name','test');

?>
Run Code Online (Sandbox Code Playgroud)

telnet 中的结果:

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
MONITOR
+OK
KEYS *
+1471853424.389215 [0 127.0.0.1:36912] "KEYS" "*"
*2
$4
name
$1
x
Run Code Online (Sandbox Code Playgroud)

会话 php 代码:

<?php
session_start();


$count = isset($_SESSION['cont']) ? $_SESSION['cont'] : 1;

echo $count;

$_SESSION['cont'] = ++$count;
?>
Run Code Online (Sandbox Code Playgroud)

它必须在每次刷新时增加数字,但它只是显示一个错误。

我再次重新安装了 Redis (v 3.2.3) 但仍然没有区别。

有什么办法可以解决吗?

LAMPP 可能是问题的原因吗?

编辑:

我开始使用 phpredis 而不是 predis。

Ren*_*hle 8

你尝试不同的东西。Predis 是 Redis 服务器的直接客户端。如果您想将它们用作会话处理程序,您必须安装 php 模块。

sudo apt-get install php5-redis
Run Code Online (Sandbox Code Playgroud)

或 PHP7

sudo apt-get install php7.0-redis
Run Code Online (Sandbox Code Playgroud)

然后“redis”应该可用作会话处理程序。