我正在使用PHP 5.6.23在ubuntu上运行LAMPP。
我决定将我的会话存储在Redis中并安装它。我也安装了Predis。
在网络上搜索时,我将php.ini更改为:
session.save_handler = redis
session.save_path = "127.0.0.1:6379"
但是在尝试创建会话时我会犯这个错误:
Warning: session_start(): Cannot find save handler 'redis' - session startup failed in /path/to/the/Untitled.php
您可以认为Redis存在问题,但事实并非如此。它工作正常我可以设置一些东西,我可以用Redis-CLI检查它:
我的redis'设置' 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');
?>
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
会话php代码:
<?php
session_start();
$count = isset($_SESSION['cont']) ? $_SESSION['cont'] : 1;
echo $count;
$_SESSION['cont'] = ++$count;
?>
每次刷新都必须增加数量,但只显示错误。
我再次重新安装了Redis(版本3.2.3),但仍然没有区别。
有什么办法可以解决吗?
LAMPP可能是问题的原因吗?
编辑:
我开始使用phpredis而不是predis。
答案 0 :(得分:4)
你尝试不同的东西。 Predis是Redis Server的直接客户端。如果要将它们用作会话处理程序,则必须安装php模块。
sudo apt-get install php5-redis
或PHP7
sudo apt-get install php7.0-redis
然后&#34; redis&#34;应该可用作会话处理程序。