在内存缓存服务器上存储会话数据

Storing session data on memcache server

我在远程内存缓存服务器上存储会话数据时遇到问题。这是我收到的错误:

[Wed Dec 14 07:33:18 2016] [error] [client 192.168.247.235] PHP Warning:  Unknown: Failed to write session data (memcache). Please verify that the current setting of session.save_path is correct (tcp://192.168.247.111:11211) in Unknown on line 0

在同一台服务器上,如果我尝试使用 telnet,它可以工作:

[root@centos ~]# telnet 192.168.247.111 11211
Trying 192.168.247.111...
Connected to 192.168.247.111.
Escape character is '^]'.
set test 0 100 3
xxx
STORED
get test
VALUE test 0 3
xxx
END

php.ini:

session.save_handler=memcache
session.save_path="tcp://192.168.247.111:11211"

当我在 php.ini 中使用 memcached 时,同样的事情发生了:

session.save_handler=memcached
session.save_path="192.168.247.111:11211"

error_log

中的更多信息
[Wed Dec 14 07:46:02 2016] [error] [client 192.168.247.235] PHP Warning:  session_start(): Write of lock failed in /var/www/html/sess.php on line 2
[Wed Dec 14 07:46:02 2016] [error] [client 192.168.247.235] PHP Warning:  session_start(): Unable to clear session lock record in /var/www/html/sess.php on line 2
[Wed Dec 14 07:46:02 2016] [error] [client 192.168.247.235] PHP Warning:  Unknown: Failed to write session data (memcached). Please verify that the current setting of session.save_path is correct (192.168.247.111:11211) in Unknown on line 0

php 文件只有 3 行:

<?
session_start();
$_SESSION['somekey'] = "someval";
print_r($_SESSION);

经过几天的测试和谷歌搜索,我发现问题出在 SElinux 上。禁用它后一切开始工作。