我正在尝试使用memcached来存储会话,但在尝试使用处理程序时session_start似乎失败了我用这个简单的脚本来查看发生了什么
ini_set('error_reporting', E_ALL);
echo ini_get("session.save_handler").'<br>';
echo ini_get('session.save_path').'<br>';
echo(var_export(session_start(), true)).'<br>';
ini_set("session.save_handler",'files');
ini_set('session.save_path', '/tmp');
echo ini_get("session.save_handler").'<br>';
echo ini_get('session.save_path').'<br>';
echo(var_export(session_start(), true));
它输出这个
memcached
127.0.0.1:11211
false
files
/tmp
true
这是我的配置
memcache
memcache support enabled
Active persistent connections 0
Version 2.2.7
Revision $Revision: 327750 $
Directive Local Value Master Value
memcache.allow_failover 1 1
memcache.chunk_size 8192 8192
memcache.default_port 11211 11211
memcache.default_timeout_ms 1000 1000
memcache.hash_function crc32 crc32
memcache.hash_strategy standard standard
memcache.max_failover_attempts 20 20
这些是我的会话设置
session
Session Support enabled
Registered save handlers files user memcache sqlite
Registered serializer handlers php php_binary wddx
Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 On On
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain xxxxxx.com no value
session.cookie_httponly Off Off
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 100 100
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.hash_bits_per_character 4 4
session.hash_function 0 0
session.name CMSSESSID PHPSESSID
session.referer_check no value no value
session.save_handler memcached memcached
session.save_path 127.0.0.1:11211 127.0.0.1:11211
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off On
session.use_trans_sid 0 0
我注意到php会话没有保存在memcache中,并且能够找到解决问题的方向。
一开始我只设置了session.save_handler = memacache
,然后php错误弹出窗口说它无法启动。
然后我设置了session.save_path = "tcp://127.0.0.1:11211?persistent=1&weight=1&timeout=1&retry_interval=15"
,它就工作了。
我不确定这是否也是你的问题。希望能有所帮助。