配置PHP Memcached会话以进行群集

时间:2014-04-25 22:29:58

标签: php apache session memcached

我已经看了几篇关于此的帖子,但无法让它发挥作用

我有2个ubuntu服务器,为了测试,我安装了以下内容:

apt-get install memcached
apt-get install apache2
apt-get install php5
apt-get install libapache2-mod-php5
apt-get install php5-memcached

我的/etc/memcached.conf有

服务器1

-m -p 11211 -l 192.168.0.1

服务器2

-m -p 11211 -l 192.168.0.2

我的/etc/php5/apache2/php.ini

服务器1

session.save_handler = memcached
session.save_path = "192.168.0.1:11211,192.168.0.2:11211"

服务器2

session.save_handler = memcached
session.save_path = "192.168.0.2:11211,192.168.0.1:11211"

和我对/ var / www /

的小测试
session_start();

echo “Session save_handler is: “.ini_get(”session.save_handler”).”
“;
echo “Session save_path is: “.ini_get(”session.save_path”).”
“;

if(isset($_SESSION['KEY']))
{
echo “KEY found: “.$_SESSION['KEY'];
}
else
{
$_SESSION['KEY'] = ‘test’;
echo ‘KEY set to: ‘.$_SESSION['KEY'];
}

它适用于每个服务器,这意味着它可以保存会话。但我没有得到会议" copy"在对面的服务器(无论如何都会启动一个新的会话)

我真的不知道我是否对测试代码感到沮丧,或者我是否错过了conf。我也尝试了memcache(没有d)并将tcp://添加到路径中,但结果是确切的......

更新

为了更清楚,我希望我的会话保存在两台服务器上,问题是它只保存在本地memcqched上,而不是保存在远程服务器上。根据{{​​3}}它应该正常工作

1 个答案:

答案 0 :(得分:0)

Memcached不会将数据复制到每台服务器上。您可以通过添加其他内存缓存服务器来增加内存缓存存储容量,但不会复制。如果你想要这个功能,你应该看看repcached http://repcached.lab.klab.org/