【发布时间】:2014-04-25 22:29:57
【问题描述】:
我已经看过一些关于此的帖子,但无法让它发挥作用
我有 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'];
}
它适用于每个单独的服务器,这意味着它确实保存了会话。但我没有在对方服务器中获得会话“副本”(无论如何它都会启动一个新会话)
我真的不知道我是否对测试代码有意见,或者我是否遗漏了 conf。我还尝试了 memcache (withouth d) 并将 tcp:// 添加到路径中,但结果是确切的……
更新:
更清楚地说,我希望我的会话保存在两台服务器上,问题是它只保存在它们的本地 memcqched 上,从不保存在远程服务器上。根据http://www.php.net/manual/en/memcache.ini.php,它应该可以工作
【问题讨论】:
-
这篇文章可能会有所帮助:digitalocean.com/community/tutorials/… - 它详细介绍了允许 memcached 复制的设置。
-
请注意,似乎是 memcache 扩展,而不是 memcached 扩展将处理复制
标签: php apache session memcached