PHP Memcache无法编写会话数据

时间:2015-11-02 17:07:23

标签: php linux memcached

我有两个服务器,我正在为会话安装PHP Memcache。一个工作没有问题,另一个我一直在努力。服务器具有相同的php和libs版本,相同的操作系统( RHEL 6.7 ),不同的内存大小,不同的磁盘空间,但我无法缩小范围。

我写了一个小的php文件来创建会话并尝试session_write_close()。对于一个系统,我没有得到任何错误,并且会话与memcache持续存在,对于另一个,我得到了这个:

Warning: session_write_close(): Failed to write session data (memcache). 
Please verify that the current setting of session.save_path is correct (tcp://localhost:11211?persistent=1&weight=1&timeout=1&retry_interval=15)

这是我的/etc/php.d/memcache.ini

; ----- Enable memcache extension module 
extension=memcache.so

; ----- Options for the memcache module

;  Whether to transparently failover to other servers on errors
;memcache.allow_failover=1
;  Data will be transferred in chunks of this size
;memcache.chunk_size=32768
;  Autocompress large data
;memcache.compress_threshold=20000
;  The default TCP port number to use when connecting to the memcached server
;memcache.default_port=11211
;  Hash function {crc32, fnv}
;memcache.hash_function=crc32
;  Hash strategy {standard, consistent}
;memcache.hash_strategy=consistent
;  Defines how many servers to try when setting and getting data.
;memcache.max_failover_attempts=20
;  The protocol {ascii, binary} : You need a memcached >= 1.3.0 to use the binary protocol
;  The binary protocol results in less traffic and is more efficient
;memcache.protocol=ascii
;  Redundancy : When enabled the client sends requests to N servers in parallel
;memcache.redundancy=1
;memcache.session_redundancy=2
;  Lock Timeout
;memcache.lock_timeout = 15

; ----- Options to use the memcache session handler

;  Use memcache as a session handler
session.save_handler=memcache
;  Defines a comma separated of server urls to use for session storage
session.save_path="tcp://localhost:11211?persistent=1&weight=1&timeout=1&retry_interval=15"

这是我的/ etc / sysconfig / memcached

PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""

同样,这两个服务器之间的文件是相同的,一个工作,一个不工作。我不确定如何调试这个,因为唯一的错误是我抱怨其他服务器接受的东西。

1 个答案:

答案 0 :(得分:0)

显然SELinux中的配置阻止了会话的保存。通过在shell中使用以下命令证明了这一点:

setenforce 0

然后再次测试会话。