2015-11-02 70 views
2

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

我写了一个小php文件来创建会话并尝试session_write_close()。对于一个系统,我没有得到任何错误和会话与内存缓存坚持,其他的,我得到这个:

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="" 

同样,这些文件是我的两个服务器之间相同,一个作品,一个没有。我不知道如何去调试这个,因为我得到的唯一错误是对其他服务器接受的东西抱怨。

回答

0

显然SELinux中的配置阻止了会话被保存。这通过在外壳中使用以下命令得到证实:

setenforce 0 

然后再次测试会话。