Я выделил сервер для поддержки Memcached и хранения сеансов, так что все мои серверы могут работать на одном и том же сеансе без каких-либо трудностей.
Но почему-то я думаю, что, возможно, неправильно понял смысл возможностей Memcached о сеансах PHP.
Я думал, что смогу стоять на Apache 1 a.domain.com
и создать сеанс, например. $_SESSION['test'] = "This string is saved in the session"
, а затем перейдите в Apache 2 b.domain.com
или c.domain.com
и просто продолжите сеанс и введите echo $_SESSION['test'];
, и он выведет строку.
Это не так, но я уверен, что мне сказали, что memcached станет отличным инструментом, если у вас есть несколько веб-серверов для совместного использования одного и того же сеанса.
Чем я ошибся?
Кстати. Мы серьезно нуждаемся в полном подробном учебнике или книге, чтобы описать, как настроить сервер, используя php, создание кластеров и т.д. На основе Memcached.
В моем файле php.ini говорится:
session.save_path = "192.168.100.228:11211"
В учебниках рассказывалось, что я не определяю протокол, а ip-адрес был предоставлен серверу Apache 3
- memcached
Вот изображение phpinfo()
Домен в session.cookie_domain
не называется domain
, но это .local
.
Он был изменен для этого изображения.
EDIT:
Просто для информации. Когда я использую простой PHP-код на основе Memcached - все работает отлично. Но почему-то, когда я пытаюсь сохранить сеанс, сервер memcached не сохраняет этот элемент.
Это работает:
<?php
$m = new Memcached();
$m->addServer('192.168.100.228', 11211);
$m->set('int', 99);
$m->set('string', 'a simple string');
$m->set('array', array(11, 12));
/* expire 'object' key in 5 minutes */
$m->set('object', new stdclass, time() + 300);
var_dump($m->get('int'));
var_dump($m->get('string'));
var_dump($m->get('array'));
var_dump($m->get('object'));
?>
Это не работает
<?php
session_start();
$_SESSION['name'] = "This is a simple string.";
?>
РЕДАКТИРОВАТЬ 2: РЕШЕНИЕ
Я заметил, что после удаления истории кеша, включая файлы cookie и т.д. браузер не завершил работу. Проблема продолжалась из-за того, что она зависла к исходному идентификатору отдельного сеанса, что сделало каждую подобласть отделенной друг от друга.
Все, что здесь определено, является правильным, просто убедитесь, что ваш браузер сбрасывает свои файлы cookie, когда вы его просите.. > & Л;